PENGUENLER VE SIMPSON PARADOKSU

Gerekli Paketlerin Yüklenmesi

knitr::opts_chunk$set(echo = TRUE)

library(palmerpenguins)
## 
## Attaching package: 'palmerpenguins'
## The following objects are masked from 'package:datasets':
## 
##     penguins, penguins_raw
library(ggplot2)
library(dplyr)
## 
## 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
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.1     ✔ stringr   1.5.2
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.1.0     ✔ tidyr     1.3.1
## ✔ readr     2.1.5
## ── 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

Veri Setini İnceleme ve Eksik Verilerin Tespit Edilmesi

glimpse(penguins)
## Rows: 344
## Columns: 8
## $ species           <fct> Adelie, Adelie, Adelie, Adelie, Adelie, Adelie, Adel…
## $ island            <fct> Torgersen, Torgersen, Torgersen, Torgersen, Torgerse…
## $ bill_length_mm    <dbl> 39.1, 39.5, 40.3, NA, 36.7, 39.3, 38.9, 39.2, 34.1, …
## $ bill_depth_mm     <dbl> 18.7, 17.4, 18.0, NA, 19.3, 20.6, 17.8, 19.6, 18.1, …
## $ flipper_length_mm <int> 181, 186, 195, NA, 193, 190, 181, 195, 193, 190, 186…
## $ body_mass_g       <int> 3750, 3800, 3250, NA, 3450, 3650, 3625, 4675, 3475, …
## $ sex               <fct> male, female, female, NA, female, male, female, male…
## $ year              <int> 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007…
sum(is.na(penguins))
## [1] 19
colSums(is.na(penguins))
##           species            island    bill_length_mm     bill_depth_mm 
##                 0                 0                 2                 2 
## flipper_length_mm       body_mass_g               sex              year 
##                 2                 2                11                 0

Değişken Adlarını Türkçeleştirme

penguenler <- penguins %>% 
rename(
  gaga_uzunlugu_mm = bill_length_mm,
  gaga_derinligi_mm = bill_depth_mm,
  yuzgec_uzunlugu_mm = flipper_length_mm,
  vucut_kutlesi_g = body_mass_g,
  tur= species,
  cinsiyet= sex)

Eksik Verilerin Veri Setinden Silinmesi

penguenler_temiz <- na.omit(penguenler)
colSums(is.na(penguenler_temiz))
##                tur             island   gaga_uzunlugu_mm  gaga_derinligi_mm 
##                  0                  0                  0                  0 
## yuzgec_uzunlugu_mm    vucut_kutlesi_g           cinsiyet               year 
##                  0                  0                  0                  0

Veri Setine BMI Değişkenini Ekleme

penguenler_temiz <- penguenler_temiz %>% 
  mutate(bmi = vucut_kutlesi_g / yuzgec_uzunlugu_mm)

Türlere Göre BMI Değişkenine Ait İstatistik Hesaplamaları

bmi_ozet <- penguenler_temiz %>% 
  group_by(tur) %>% 
  summarise(
    ortalama_bmi =mean(bmi),
    sd_bmi = sd(bmi),
    min_bmi = min(bmi),
    max_bmi = max(bmi))
bmi_ozet
## # A tibble: 3 × 5
##   tur       ortalama_bmi sd_bmi min_bmi max_bmi
##   <fct>            <dbl>  <dbl>   <dbl>   <dbl>
## 1 Adelie            19.5   2.18    15.2    25.3
## 2 Chinstrap         19.0   1.60    14.1    22.9
## 3 Gentoo            23.4   1.88    19.0    28.5

Penguen Türlerine Göre BMI Kutu Grafigi

ggplot(penguenler_temiz, aes(x=factor(tur), y=bmi)) +
  geom_boxplot(alpha=0.8, fill="skyblue", outlier.colour = "red", outlier.shape = 16)+
  labs(
    title = "Penguen Turlerine Gore BMI Kutu Grafigi",
    x = "TUR",
    y = "BMI") +
  theme_minimal(base_size = 15)

BMI değerleri Chinstrap türünde birbirine daha yakın dağılmaktadır ancak uç değerlere sahiptir. Adelie türünde ise BMI değerleri daha geniş bir aralığa dağılmıştır. En yüksek BMI degerlerine sahip tür ise Gentoo olmuştur.

GÖREV 1

Saçılım Grafiği - Gaga Uzunluğu ile Gaga Derinliği Arasındaki İlişkiyi İnceleme

ggplot(penguenler_temiz, aes(x= gaga_uzunlugu_mm, y= gaga_derinligi_mm)) +
  geom_point(alpha=0.8, fill="skyblue", size= 2)+
  geom_smooth(method = "lm", se=TRUE)+
  labs(
    title = "Gaga Uzunlugu ve Derinligi Arasındaki İliski",
    x = "Gaga Uzunlugu (mm)",
    y = "Gaga Derinligi (mm)") +
  theme_minimal(base_size = 15)
## `geom_smooth()` using formula = 'y ~ x'

Tüm penguen türlerinin bir arada incelendiği bu grafikte gaga uzunluğu arttıkça gaga derinliğinin azaldığını (negatif yönlü bir ilişki) görülmektedir.

Regresyon Modeli (Tüm Veri)

model<- lm(gaga_uzunlugu_mm ~ gaga_derinligi_mm, data=penguenler_temiz)
summary(model)
## 
## Call:
## lm(formula = gaga_uzunlugu_mm ~ gaga_derinligi_mm, data = penguenler_temiz)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.9498  -3.9530  -0.3657   3.7327  15.5025 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        54.8909     2.5673  21.380  < 2e-16 ***
## gaga_derinligi_mm  -0.6349     0.1486  -4.273 2.53e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.332 on 331 degrees of freedom
## Multiple R-squared:  0.05227,    Adjusted R-squared:  0.04941 
## F-statistic: 18.26 on 1 and 331 DF,  p-value: 2.528e-05

Eğim negatif yönlü (-0.63) ve anlamlıdır (***).

GÖREV 2

Veri Setini Penguen Türlerine Göre Ayırma ve Renklendirme

ggplot(penguenler_temiz, aes(x= gaga_uzunlugu_mm, y= gaga_derinligi_mm, colour = tur)) +
  geom_point(alpha=0.8, fill="skyblue", size= 2)+
  geom_smooth(method = "lm", se=TRUE)+
  labs(
    title = "Gaga Uzunlugu ve Derinligi Arasındaki İliski",
    x = "Gaga Uzunlugu (mm)",
    y = "Gaga Derinligi (mm)") +
  theme_minimal(base_size = 15)
## `geom_smooth()` using formula = 'y ~ x'

Penguen türleri ayrı ayrı incelediğinde her bir tür için gaga uzunluğu arttıkça gaga derinliğininde artış gösterdiği (pozitif yönlü bir ilişki) görülmektedir.

adelie <- penguenler_temiz %>% filter(tur=="Adelie")
chinstrap <- penguenler_temiz %>% filter(tur=="Chinstrap")
gentoo <- penguenler_temiz %>% filter(tur=="Gentoo")

Regresyon Modeli 1 Adelie

model<- lm(gaga_uzunlugu_mm ~ gaga_derinligi_mm, data=adelie)
summary(model)$coefficients
##                     Estimate Std. Error  t value     Pr(>|t|)
## (Intercept)       23.3668186  3.0869119 7.569642 4.102949e-12
## gaga_derinligi_mm  0.8424775  0.1678814 5.018290 1.514901e-06

Adelie penguen türünde gaga uzunluğu ile gaga derinliği arasında pozitif ilişki vardır.

Regresyon Modeli 2 Chinstrap

model<- lm(gaga_uzunlugu_mm ~ gaga_derinligi_mm, data=chinstrap)
summary(model)$coefficients
##                    Estimate Std. Error  t value     Pr(>|t|)
## (Intercept)       13.427908  5.0568645 2.655382 9.920462e-03
## gaga_derinligi_mm  1.922084  0.2740101 7.014647 1.525539e-09

Chinstrap penguen türünde gaga uzunluğu ile gaga derinliği arasında pozitif bir ilişki vardır.

Regresyon Modeli 3 Gentoo

model<- lm(gaga_uzunlugu_mm ~ gaga_derinligi_mm, data=gentoo)
summary(model)$coefficients
##                    Estimate Std. Error  t value     Pr(>|t|)
## (Intercept)       16.670181  3.3110492 5.034713 1.753472e-06
## gaga_derinligi_mm  2.060321  0.2203144 9.351729 7.336624e-16

Gentoo penguen türünde gaga uzunluğu ile derinliği arasında pozitif bir ilişki vardır.

Veri seti bir bütün olarak incelendiğinde penguenlerin gaga uzunluğu ve gaga derinliği arasında negatif yönlü bir ilişki görülürken penguen türleri ayrı ayrı incelendiğinde bu türlerin her birinde gaga uzunluğu ile gaga derinliği arasında pozitif yönlü bir ilişki olduğu görülmüştür. Tür düzeyinde elde edilen ilişki toplam düzeyde elde edilen ilişkiyle çelişmektedir.

GÖREV 3

Toplam veri setinde neden negatif ilişki gözlemlediniz?

Penguen türleri arasında bulunan farklar, yanlışlıkla bir nedensel ilişki gibi yorumlanmış ve bu da negatif korelasyon yanılsaması oluşturmuştur. Örnek olarak, Gentoo penguenleri daha uzun gagalı ve daha büyük gaga derinliğine sahipken Adelie penguenleri daha kısa gagalı ve daha küçük gaga derinliğine sahip türlerdir. Gaga uzunluğu büyük olan penguenlerin aynı zamanda daha büyük gaga genişliğine sahip olmaları beklenir ancak türler bir bütün olarak incelendiğinde, gaga uzunluğu arttıkça gaga genişlikleri azalıyormuş gibi görünen bir ters ilişki ortaya çıkar.

Tür bilgisi eklendiğinde neden ilişki yön değiştirdi?

Veriyi türlere göre ayrı olarak incelediğimizde her bir tür için gaga uzunluğu arttıkça gaga derinliği değerinin de artığını görürüz. Bu değişimin nedeni ise artık benzer yapıya sahip bireyleri karşılaştırmaktır. Tür farklılıkları kontrol altına alındığı için, alt gruplardaki gerçek korelasyon görünür hâle gelir. Böylece genel verideki yanıltıcı negatif ilişki, tür bazında pozitif ilişkiye dönüşmüştür.

Bu durumu Simpson Paradoksu çerçevesinde nasıl açıklarsınız?

Simpson Paradoksu, alt gruplarda geçerli olan bir ilişkinin, gruplar birleştirildiğinde tam tersi bir ilişki göstermesidir. Penguenler veri setinde bulunan her bir tür için gaga uzunluğu ve gaga derinliği arasında pozitif ilişki vardır. Ancak tüm türleri bir arada incelediğimizde, gruplar arası farklar, veride sanki negatif bir ilişki varmış gibi bir yanılsama yaratır. Yani, gizli bir değişken olan “tür”, analiz dışı bırakıldığında ilişki yönü değişmektedir.

Bu örnek, verileri alt gruplara göre incelemenin neden önemli olduğunu nasıl göstermektedir?

Alt gruplara göre analiz yapmak, gerçek ilişkiyi ortaya çıkarır ve yanlış genellemeleri önler. Eğer sadece tüm veriye bakılırsa, yanıltıcı sonuçlar elde edebiliriz. Bu sebeple, verilerin alt yapısını anlamak, gruplar arasındaki farkları göz önüne almak ve analizleri bu şekilde yürütmek, daha doğru, güvenilir ve anlamlı sonuçlar ulaşmamızı sağlar.