✨ Başlayalım

Paket Yükleme

library(palmerpenguins)

Veri setini yükleme

data("penguins")

Veri setine atıf verme

citation("palmerpenguins")
## To cite palmerpenguins in publications use:
## 
##   Horst AM, Hill AP, Gorman KB (2020). palmerpenguins: Palmer
##   Archipelago (Antarctica) penguin data. R package version 0.1.0.
##   https://allisonhorst.github.io/palmerpenguins/. doi:
##   10.5281/zenodo.3960218.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {palmerpenguins: Palmer Archipelago (Antarctica) penguin data},
##     author = {Allison Marie Horst and Alison Presmanes Hill and Kristen B Gorman},
##     year = {2020},
##     note = {R package version 0.1.0},
##     doi = {10.5281/zenodo.3960218},
##     url = {https://allisonhorst.github.io/palmerpenguins/},
##   }

Analizlerde Horst ve arkadaşları (2020) tarafından geliştirilen Palmer Penguenleri veri seti kullanılmıştır.

Veri setinin ilk halinin boyutları

dim(penguins)
## [1] 344   8

Eksik veri sayısını değişken bazında görme

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(tur = species,
    ada = island,
    gaga_uzunlugu = bill_length_mm,
    gaga_derinligi = bill_depth_mm,
    yuzgec_uzunlugu = flipper_length_mm,
    vucut_kutlesi = body_mass_g,
    cinsiyet = sex,
    yil = year)

Eksik verileri çıkarma

penguenler_temiz <- na.omit(penguenler)

Eksik veriler çıkarıldıktan sonra boyutlar

dim(penguenler_temiz)
## [1] 333   8

Yeni değişken oluşturma (bmi)

penguenler_temiz <- penguenler_temiz %>%
  mutate(bmi = vucut_kutlesi / yuzgec_uzunlugu)

Türlere göre betimsel istatistikler

bmi_ozet <- penguenler_temiz %>%
  group_by(tur) %>%
  summarise(ortalama = mean(bmi),
    standart_sapma = sd(bmi),
    minimum = min(bmi),
    maksimum = max(bmi),
    n = n())

bmi_ozet
## # A tibble: 3 × 6
##   tur       ortalama standart_sapma minimum maksimum     n
##   <fct>        <dbl>          <dbl>   <dbl>    <dbl> <int>
## 1 Adelie        19.5           2.18    15.2     25.3   146
## 2 Chinstrap     19.0           1.60    14.1     22.9    68
## 3 Gentoo        23.4           1.88    19.0     28.5   119

Türleri tanıma

Veride üç tür penguen vardır. Bunlar: Adelie, Chinstrap ve Gentoo penguenleridir. Bu türlere ilişkin örnek görsel şöyledir:

Kutu grafiği

ggplot(penguenler_temiz, aes(x = tur, y = bmi, fill = tur)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Penguen Turlerine Gore BMI Dagılımı\n",
    x = "\nTur",
    y = "BMI (Vucut Kutlesi / Yuzgec Uzunlugu)\n") +
  theme(legend.position = "none")

Betimsel istatistik tablosu, türlere göre ortalama BMI değerlerinin farklılaştığını göstermektedir. Gentoo penguenleri, Adelie ve Chinstrap türlerine göre daha yüksek BMI değerlerine sahiptir. Adelie ve Chinstrap türleri arasında ise büyük bir fark gözlenmemektedir. Kutu grafiği de Gentoo penguenlerinin BMI değerlerinin daha yüksek olduğunu göstermektedir.

🔍 Görev 1: Toplam Düzeyde Analiz

ggplot(penguenler_temiz, aes(x = gaga_uzunlugu, y = gaga_derinligi, color = tur)) + #color kısmını sonra ekledim
  geom_point() +
  geom_smooth(method = "lm", se = TRUE, color = "black") +
  theme_minimal() +
  labs(title = "Gaga Uzunlugu ve Gaga Derinligi Arasındaki İliski",
    x = "Gaga Uzunlugu",
    y = "Gaga Derinligi")
## `geom_smooth()` using formula = 'y ~ x'

Siyah çizgi hafif aşağı doğru eğimlidir, bu negatif bir ilişkiye işaret etmektedir. Gaga uzunluğu arttıkça, gaga derinliği azalma eğilimi göstermektedir.

Ancak toplam düzeyde analize ek olarak türlerin renklerine baktığımızda, renklere göre türler oldukça ayrışmış görünmektedir.

Adelie (kırmızı): Daha kısa ama daha derin gagalara, Gentoo (mavi): Daha uzun ama daha sığ gagalara, Chinstrap (yeşil): Uzun ve derin gagalara sahiptir. Bu kümelenme, aslında türler arasında farklılık olduğu ve genel negatif eğimin tür farkından kaynaklanabileceğini göstermektedir. Tür farkı sonraki bölümde ele alınacaktır.

Basit doğrusal regresyon modeli

model <- lm(gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz)

Model özetini görüntüleme

summary(model)
## 
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1548 -1.4291  0.0122  1.3994  4.5004 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   20.78665    0.85417  24.335  < 2e-16 ***
## gaga_uzunlugu -0.08233    0.01927  -4.273 2.53e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.92 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

Toplam düzeyde analiz bulguları gaga uzunluğu arttıkça gaga derinliğinin azaldığını göstermektedir.

🐧 Görev 2: Tür Bazında Analiz

Tür bazında veri ayırma

penguenler_temiz %>% group_by(tur)
## # A tibble: 333 × 9
## # Groups:   tur [3]
##    tur    ada       gaga_uzunlugu gaga_derinligi yuzgec_uzunlugu vucut_kutlesi
##    <fct>  <fct>             <dbl>          <dbl>           <int>         <int>
##  1 Adelie Torgersen          39.1           18.7             181          3750
##  2 Adelie Torgersen          39.5           17.4             186          3800
##  3 Adelie Torgersen          40.3           18               195          3250
##  4 Adelie Torgersen          36.7           19.3             193          3450
##  5 Adelie Torgersen          39.3           20.6             190          3650
##  6 Adelie Torgersen          38.9           17.8             181          3625
##  7 Adelie Torgersen          39.2           19.6             195          4675
##  8 Adelie Torgersen          41.1           17.6             182          3200
##  9 Adelie Torgersen          38.6           21.2             191          3800
## 10 Adelie Torgersen          34.6           21.1             198          4400
## # ℹ 323 more rows
## # ℹ 3 more variables: cinsiyet <fct>, yil <int>, bmi <dbl>

Her tür için aynı scatter plot’u oluşturma ve noktaları farklı renklerle belileme

ggplot(penguenler_temiz, aes(x = gaga_uzunlugu, y = gaga_derinligi, color = tur)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE) +
  facet_wrap(~tur) +  
  theme_minimal() +
  labs(title = "Tur Bazında Gaga Uzunlugu ve Gaga Derinligi İliskisi\n",
       x = "\nGaga Uzunlugu",
       y = "Gaga Derinligi\n")
## `geom_smooth()` using formula = 'y ~ x'

Tür bazında incelediğimizde gaga uzunluğu arttıkça gaga derinliğinin de arttığı görülmektedir.

Tür bazında regresyon modelleri kurma

adelie_model <- lm(gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% filter(tur == "Adelie"))

chinstrap_model <- lm(gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% filter(tur == "Chinstrap"))

gentoo_model <- lm(gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% filter(tur == "Gentoo"))

Model özetlerini görüntüleme

summary(adelie_model)
## 
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% 
##     filter(tur == "Adelie"))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.1487 -0.7926 -0.0842  0.5550  3.4990 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   11.48771    1.37010   8.385 4.23e-14 ***
## gaga_uzunlugu  0.17668    0.03521   5.018 1.51e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.129 on 144 degrees of freedom
## Multiple R-squared:  0.1489, Adjusted R-squared:  0.1429 
## F-statistic: 25.18 on 1 and 144 DF,  p-value: 1.515e-06
summary(chinstrap_model)
## 
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% 
##     filter(tur == "Chinstrap"))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.65742 -0.46033 -0.01862  0.61473  1.69801 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    7.56914    1.55053   4.882 6.99e-06 ***
## gaga_uzunlugu  0.22221    0.03168   7.015 1.53e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8659 on 66 degrees of freedom
## Multiple R-squared:  0.4271, Adjusted R-squared:  0.4184 
## F-statistic: 49.21 on 1 and 66 DF,  p-value: 1.526e-09
summary(gentoo_model)
## 
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = penguenler_temiz %>% 
##     filter(tur == "Gentoo"))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.57143 -0.52974 -0.04479  0.45417  2.96109 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     5.1210     1.0583   4.839 4.02e-06 ***
## gaga_uzunlugu   0.2076     0.0222   9.352 7.34e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7491 on 117 degrees of freedom
## Multiple R-squared:  0.4277, Adjusted R-squared:  0.4229 
## F-statistic: 87.45 on 1 and 117 DF,  p-value: 7.337e-16

Her bir penguen türünde gaga uzunluğu ile gaga derinliği arasında pozitif bir ilişki vardır. Yani Adelie, Chinstrap ve Gentoo penguenlerinde gaga uzadıkça gaga derinliği de artmaktadır. Ancak toplam veriye baktığımızda, gaga uzunluğu arttıkça gaga derinliği azalıyor görünmektedir. Yani türlere bakınca pozitif olan ilişki, tüm veriye bakınca tersine dönmektedir. Bu durum türler bazında analiz ve görselleştirme ile anlaşılmaktadır.

🧠 Görev 3: Yorum ve Tartışma

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

Toplam veri analizinde siyah regresyon doğrusu hafif aşağı doğru eğimliydi, yani gaga uzunluğu arttıkça gaga derinliği azalıyordu. Bu farklı penguen türlerinin ortalama gaga uzunluğu ve derinliği değerlerinin birbirinden farklı olmasından kaynaklanmaktadır. Türler arasındaki bu farklılık, toplam veri üzerinde eğimin ters yönde görünmesine yol açmıştır.

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

Tür bilgisi eklendiğinde her tür ayrı ayrı incelenmiş ve her birinde gaga uzunluğu ile gaga derinliği arasında pozitif bir ilişki olduğu görülmüştür Yani her türde gaga uzadıkça gaga derinliği artmıştır. Toplam veride negatif görünen ilişki, türler ayrı incelendiğinde pozitif olarak ortaya çıkmıştır.

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

Toplam veri analizinde eğim ters yönde görünürken, türler ayrı ayrı incelendiğinde eğim yönü değişmiştir. Yani türlerdeki farklı dağılımlar toplam veri üzerinde yanıltıcı bir etki yaratmıştır.

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

Verileri alt gruplara göre incelemek, toplam veri analizinde gözden kaçabilecek gerçek ilişkileri ortaya çıkarır. Bu örnek, türler ayrılmadığında toplam veri üzerinde yanlış bir yorum yapılabileceğini, alt gruplara göre analiz yapmanın daha doğru ve güvenilir sonuçlar verdiğini göstermiştir.