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
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
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)
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
penguenler_temiz <- penguenler_temiz %>%
mutate(bmi = vucut_kutlesi_g / yuzgec_uzunlugu_mm)
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
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.
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.
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 (***).
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")
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.
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.
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.
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.
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.
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.
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.