Veri İnceleme

🎯 Amaç

  • Bu derste temel amacımız, veri düzenleme ve özetleme tekniklerini uygulamalı olarak öğrenmektir.

  • Özellikle, değişkenler arasındaki ilişkileri incelerken verilerin farklı düzeylerde (toplam vs. alt gruplar) nasıl farklı görünebileceğini keşfedeceğiz.

  • Bu bağlamda Simpson Paradoksu ve verilerin uygun şekilde düzenlenip gruplanmaması durumunda nasıl yanıltıcı sonuçlara ulaşılabileceğini göstermesi açısından güçlü bir örnektir.

  • Anscombe’un Dörtlüsü ise, aynı özet istatistiklere sahip veri setlerinin görselleştirilmeden yanlış yorumlanabileceğini ortaya koyar.

Veri düzenlemenin önemi, sadece “doğru hesaplama” yapmak değil; aynı zamanda hangi değişkenlerin kontrol edilmesi gerektiğini fark ederek daha anlamlı sonuçlar çıkarmaktır.

🔎 Uygulamalar

  • Simpson Paradoksu (UCBadmit Örneği)
    • Genel oranlar ile alt grup oranlarını karşılaştırma
    • Karıştırıcı (confounding) değişkenlerin etkisini görme
    • Veri düzenlemenin ve doğru gruplamanın önemini tartışma
  • Anscombe’un Dörtlüsü
    • Aynı özet istatistiklere sahip farklı veri setlerini keşfetme
    • Özet istatistikler (ortalama, sd, korelasyon, regresyon) ile görselleştirme sonuçlarını karşılaştırma
    • Veriyi görselleştirmeden sadece özet istatistiklere güvenmenin sakıncalarını tartışma
    • Dersin simspon paradoksu kısmı OpenIntro’nun Introduction to Modern Statistics bölümünden uyarlanmıştır.

1 Simpson Paradoxu

  • Simpson Paradoksu, bir gruptaki iki değişken arasındaki ilişkinin, alt gruplara bölündüğünde ortaya çıktığı, kaybolduğu veya tersine döndüğü istatistiksel bir olgudur.

  • Örneğin, iki değişken bir grupta pozitif ilişkili olabilir, ancak tüm alt gruplarda bağımsız veya hatta negatif ilişkili olabilir.

  • Paradoksu sergileyen vakalar matematik ve olasılık teorisi açısından problemsizdir, ancak yine de birçok insanı şaşırtmaktadır.

  • Bir ilişkiyi incelerken önemli bir değişkeni dikkate almamak Simpson paradoksu ile sonuçlanabilir.

  • Simpson paradoksu, açıklayıcı bir değişkenin ihmal edilmesinin, başka bir açıklayıcı değişken ile yanıt değişkeni arasındaki ilişkinin ölçüsü üzerinde yaratabileceği etkiyi göstermektedir.

  • Üçüncü bir değişkenin analize dahil edilmesi, diğer iki değişken arasındaki görünür ilişkiyi değiştirebilir

📦 Örnek Senaryo: Çok Değişkenli İlişkiler

Günlük alınan kalori miktarı ile kalp sağlığı arasındaki ilişkiyi düşündüğümüzde, bu iki değişkenin tek başına incelenmesi yanıltıcı olabilir. Çünkü kişinin yaşı ve fiziksel kondisyonu gibi başka faktörler de bu ilişkiyi etkiler.

👉 Gerçek dünyada değişkenler arasındaki ilişkiler genellikle çok boyutludur ve bu nedenle analizlerde birden fazla değişkeni dikkate almak gerekir.

1.0.1 Berkeley’deki cinsiyete dayalı kabul oranları:

  • “Berkeley’deki California Üniversitesi’ne 1973 sonbaharında yapılan lisansüstü kabullere ilişkin toplu veriler incelendiğinde, kadın başvuru sahiplerine karşı açık ama yanıltıcı bir önyargı örüntüsü görülmektedir.

  • Veriler altı bölümden gelmektedir. Gizlilik için bunlara A-F olarak kodlanmıştır.

  • Elimizde başvuru sahibinin kadın mı erkek mi olduğu ve kabul edilip edilmediğine dair bilgiler var.

  • İlk olarak, kabul edilen erkeklerin yüzdesinin genel olarak kadınlardan gerçekten daha yüksek olup olmadığını değerlendireceğiz. Daha sonra, her bölüm için aynı yüzdeyi hesaplayacağız.

library(dsbox)
library(dplyr)
Warning: package 'dplyr' was built under R version 4.4.3

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
ucbadmit %>%
  count(gender)
ucbadmit %>%
  count(dept)
ucbadmit %>%
  count(admit)

Genel cinsiyet dağılımı hakkında ne söyleyebilirsiniz?

📌 İpucu: Aşağıdaki olasılıkları hesaplayın: \(P(Kabul | Erkek)\) ve \(P(Kabul | Kadın)\).

ucbadmit %>%
  count(gender, admit)
ucbadmit %>%
  count(gender, admit) %>%
  group_by(gender) %>%
  mutate(prop_admit = n / sum(n))
  • \(P(Kabul | Kadın)\) = 0.304
  • \(P(Kabul | Erkek)\) = 0.445
library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.4.3
ggplot(ucbadmit, aes(y = gender, fill = admit)) +
  geom_bar(position = "fill") + 
  labs(title = "Admit by gender",
       y = NULL, x = NULL)

  • Departmanlara göre cinsiyet dağılımı hakkında ne söyleyebilirsiniz?
ucbadmit %>%
  count(dept, gender, admit)
library(tidyr)
ucbadmit %>%
  count(dept, gender, admit) %>%
  pivot_wider(names_from = dept, values_from = n)
ggplot(ucbadmit, aes(y = gender, fill = admit)) +
  geom_bar(position = "fill") +
  facet_wrap(. ~ dept) +
  scale_x_continuous(labels = scales::label_percent()) +
  labs(title = "Admissions by gender and department",
       x = NULL, y = NULL, fill = NULL) +
  theme(legend.position = "bottom")

ucbadmit %>%
  count(dept, gender, admit) %>%
  group_by(dept, gender) %>%
  mutate(
    n_applied  = sum(n),
    prop_admit = n / n_applied
    ) %>%
  filter(admit == "Admitted") %>%
  rename(n_admitted = n) %>%
  dplyr::select(-admit) %>%
  print(n = 12)
# A tibble: 12 × 5
# Groups:   dept, gender [12]
   dept  gender n_admitted n_applied prop_admit
   <ord> <fct>       <int>     <int>      <dbl>
 1 A     Female         89       108     0.824 
 2 A     Male          512       825     0.621 
 3 B     Female         17        25     0.68  
 4 B     Male          353       560     0.630 
 5 C     Female        202       593     0.341 
 6 C     Male          120       325     0.369 
 7 D     Female        131       375     0.349 
 8 D     Male          138       417     0.331 
 9 E     Female         94       393     0.239 
10 E     Male           53       191     0.277 
11 F     Female         24       341     0.0704
12 F     Male           22       373     0.0590

Tabloya bakıldığında kadın öğrenciler, üniversitenin en büyük 6 bölümünün 4’ünde erkek öğrencilere göre daha fazla kabul almıştır. Yani A, B, D ve F bölümlerine kabul gören erkek sayısı kadın sayısına göre daha azdır. Şöyle ki erkekler en fazla öğrenci kabul edilen bölüme başvuruyu daha fazla yaparken kız öğrenciler ise en az öğrenci kabul edilen bölüme daha fazla başvuru yapmıştır. Bu sebeple grup yüzdeleri ile toplam yüzdeleri birbirinden farklılık göstermektedir. Konuyu pekiştirmek için başka bir örnekle devam edelim.

🔹 Genel olarak: Erkeklerin kabul edilme olasılığı daha yüksekti.

🔹 Çoğu bölüm içinde: Kadınların kabul edilme olasılığı daha yüksekti.

🔹 Bölüm etkisi kontrol edildiğinde: Cinsiyet ile kabul edilme durumu arasındaki ilişki tersine döndü.

📌 Olası neden:

Kadınlar, kabul oranı daha düşük olan rekabetçi bölümlere başvurma eğilimindeydi.

Erkekler ise, kabul oranı daha yüksek olan daha az rekabetçi bölümlere başvurma eğilimindeydi.

👉 Görüldüğü gibi, erkeklerin genel kabul oranı daha yüksek çıkmış olsa da bölüm bilgisi dikkate alındığında, çoğu bölümde kadınların kabul edilme olasılığı aslında daha yüksektir. Bu durumu Simpson paradoksu olarak adlandırıyoruz.

⚠️ Bu çelişkili bulguyu yalnızca başvurulan bölüm bilgisi analize eklendiğinde keşfedebildik. Bu tür örnekler, bir araştırmada yüzeyde ilgisiz gibi görünen ancak potansiyel olarak karıştırıcı (confounding) etkisi olabilecek değişkenlerin dikkate alınmasının ve toplanmasının önemini vurgular.

İki değişken arasındaki ilişki

`geom_smooth()` using method = 'loess' and formula = 'y ~ x'

Üç değişken arasındaki ilişki

`geom_smooth()` using formula = 'y ~ x'

`geom_smooth()` using formula = 'y ~ x'
`geom_smooth()` using formula = 'y ~ x'

2 Anscombe’un Dörtlüsü

anscombe_quartet veri setinin amacı, verilerinizi görselleştirmenin önemli olduğu noktasını vurgulamaya yardımcı olmaktır. Francis Anscombe bu dört veri setini, istatistiksel özet ölçümlerin tek başına iki değişken (burada x ve y) arasındaki tam ilişkiyi yakalayamayacağını göstermek için oluşturmuştur. Anscombe, özet istatistikleri hesaplamadan önce verileri görselleştirmenin önemini vurgulamıştır.

  • Veri seti 1, x ve y arasında doğrusal bir ilişkiye sahiptir
  • Veri Seti 2, x ve y arasında doğrusal olmayan bir ilişki olduğunu göstermektedir
  • Veri seti 3, x ve y arasında tek bir aykırı değer ile doğrusal bir ilişkiye sahiptir
  • Veri seti 4, etkili değer olarak işlev gören tek bir aykırı değer ile x ve y arasında hiçbir ilişki göstermemektedir.
library(datasets)
datasets::anscombe
  • değişkenlerin ortalamaları
library(dplyr)
library(knitr)
Warning: package 'knitr' was built under R version 4.4.3
colMeans(anscombe) %>% kable(digits=2)
x
x1 9.0
x2 9.0
x3 9.0
x4 9.0
y1 7.5
y2 7.5
y3 7.5
y4 7.5
  • değişkenlerin standart sapmaları
apply(anscombe,2,sd) %>% kable(digits=2)
x
x1 3.32
x2 3.32
x3 3.32
x4 3.32
y1 2.03
y2 2.03
y3 2.03
y4 2.03
  • değişkenler arası korelasyonlar
cor(anscombe[,1:4],anscombe[,5:8]) %>% kable(digits=2)
y1 y2 y3 y4
x1 0.82 0.82 0.82 -0.31
x2 0.82 0.82 0.82 -0.31
x3 0.82 0.82 0.82 -0.31
x4 -0.53 -0.72 -0.34 0.82
  • regresyon denklemleri
ff <- y ~ x
mods <- setNames(as.list(1:4), paste0("lm", 1:4))
for(i in 1:4) {
  ff[2:3] <- lapply(paste0(c("y","x"), i), as.name)
  mods[[i]] <- lmi <- lm(ff, data = anscombe)
  print(anova(lmi))
}
Analysis of Variance Table

Response: y1
          Df Sum Sq Mean Sq F value  Pr(>F)   
x1         1 27.510 27.5100   17.99 0.00217 **
Residuals  9 13.763  1.5292                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Analysis of Variance Table

Response: y2
          Df Sum Sq Mean Sq F value   Pr(>F)   
x2         1 27.500 27.5000  17.966 0.002179 **
Residuals  9 13.776  1.5307                    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Analysis of Variance Table

Response: y3
          Df Sum Sq Mean Sq F value   Pr(>F)   
x3         1 27.470 27.4700  17.972 0.002176 **
Residuals  9 13.756  1.5285                    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Analysis of Variance Table

Response: y4
          Df Sum Sq Mean Sq F value   Pr(>F)   
x4         1 27.490 27.4900  18.003 0.002165 **
Residuals  9 13.742  1.5269                    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
sapply(mods, coef)
                  lm1      lm2       lm3       lm4
(Intercept) 3.0000909 3.000909 3.0024545 3.0017273
x1          0.5000909 0.500000 0.4997273 0.4999091
  • Özetle
  • \(\overline{X}\): 9
  • \(sd_{\overline{X}}\): 3.32
  • \(\overline{Y}\): 7.5
  • \(sd_{\overline{Y}}\): 4.125
  • \(cor_{XY}\): 0.816
  • Regresyon denklemleri: \(y = 3 + 0.5x\)
  • Açıklanan varyans \(R^2\) : 0.67
library(tidyverse)
Warning: package 'purrr' was built under R version 4.4.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ forcats   1.0.0     ✔ readr     2.1.5
✔ lubridate 1.9.4     ✔ stringr   1.5.1
✔ purrr     1.0.4     ✔ tibble    3.2.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(quartets)

ggplot(anscombe_quartet, aes(x = x, y = y)) +
  geom_point() + 
  geom_smooth(method = "lm", formula = "y ~ x") +
  facet_wrap(~dataset)

anscombe_quartet |>
  group_by(dataset) |>
  summarise(mean_x = mean(x),
            sd_x = sd(x),
            mean_y = mean(y),
            sd_y = sd(y),
            cor = cor(x, y)) |>
  knitr::kable(digits = 2)
dataset mean_x sd_x mean_y sd_y cor
(1) Linear 9 3.32 7.5 2.03 0.82
(2) Nonlinear 9 3.32 7.5 2.03 0.82
(3) Outlier 9 3.32 7.5 2.03 0.82
(4) Leverage 9 3.32 7.5 2.03 0.82

💡 Uygulama Görevi

palmerpenguins paketinden penguins veri setini yükleyin.

Veri seti Antarktika’daki penguenlerin türü, ada, boy, ağırlık, yüzgeç uzunluğu, cinsiyet vb.bilgilerini içerir.

  • penguenlerin vücut kitle indeksini (body_mass_g / flipper_length_mm) veri setine ekleyin

  • Bu yeni değişken için türler göre ortalama, standart sapma, minimum ve maksimum değerlerini hesaplayın.

Görsel: tür × ada kutu grafiği

Warning: package 'palmerpenguins' was built under R version 4.4.3
Warning: Removed 2 rows containing non-finite outside the scale range
(`stat_boxplot()`).

📚 Ödev

🔗 Derste yaptıklarımızın tekrarını aşağıdaki iki bölümü tekrarlayınız

🔗 Language of data

🔗 Language of data