install.packages(“palmerpenguins”) install.packages(“dplyr”) install.packages(“ggplot2”)
library(palmerpenguins)
##
## Attaching package: 'palmerpenguins'
## The following objects are masked from 'package:datasets':
##
## penguins, penguins_raw
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(ggplot2)
data("penguins")
head(penguins)
## # A tibble: 6 × 8
## species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
## <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 NA NA NA NA
## 5 Adelie Torgersen 36.7 19.3 193 3450
## 6 Adelie Torgersen 39.3 20.6 190 3650
## # ℹ 2 more variables: sex <fct>, year <int>
###Görev 1
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
)
###Yeni adlar ve eksik verilerle ilgili işlemler
# Yeni adlar
colnames(penguenler)
## [1] "tur" "ada" "gaga_uzunlugu" "gaga_derinligi"
## [5] "yuzgec_uzunlugu" "vucut_kutlesi" "cinsiyet" "yil"
# Eksik veri sayısı
colSums(is.na(penguenler))
## tur ada gaga_uzunlugu gaga_derinligi yuzgec_uzunlugu
## 0 0 2 2 2
## vucut_kutlesi cinsiyet yil
## 2 11 0
# Eksik veri çıkarmadan önceki boyut
dim(penguenler)
## [1] 344 8
# Eksik verileri kaldır
penguenler_v1 <- na.omit(penguenler)
# Eksik veri çıkarıldıktan sonraki boyut
dim(penguenler_v1)
## [1] 333 8
penguenler_v1 <- penguenler_v1 %>%
mutate(bmi = vucut_kutlesi / yuzgec_uzunlugu)
head(penguenler_v1)
## # A tibble: 6 × 9
## 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
## # ℹ 3 more variables: cinsiyet <fct>, yil <int>, bmi <dbl>
#Türlere gore betimsel istatistikler
bmi_ozet <- penguenler_v1 %>%
group_by(tur) %>%
summarise(
ortalama = mean(bmi),
std_sapma = sd(bmi),
min_bmi = min(bmi),
max_bmi = max(bmi)
)
#Türlere gore grafik
ggplot(penguenler_v1, aes(x = tur, y = bmi, fill = tur)) +
geom_boxplot() +
labs(
title = "Turlere Göre Penguen bmi dagilimi",
x = "Tür",
y = "bmi (Vucut Kutlesi / Yuzgec Uzunluğu)"
) +
theme_minimal()
#gaga uzunlugu-derinlik iliski
ggplot(penguenler_v1, aes(x = gaga_uzunlugu, y = gaga_derinligi, color = tur)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Gaga Uzunluğu ve Gaga Derinliği Arasındaki İlişki",
x = "Gaga Uzunluğu (mm)",
y = "Gaga Derinliği (mm)"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
#Grafikte çizgilerin yukarı yönlü olması pozitif, aşağı yönlü olması ise negatif ilişkiyi gösterir. Bu durumda genellikle pozitif bir ilişki gözlemlenir; bu da gaga uzunluğu arttıkça gaga derinliğinin de arttığı anlamına gelir.
#Gaga derinliği model
model <- lm(gaga_derinligi ~ gaga_uzunlugu, data = penguenler_v1)
summary(model)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = penguenler_v1)
##
## 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
#Simpson paradoksu
ggplot(penguenler_v1, aes(x = gaga_uzunlugu, y = gaga_derinligi, color = tur)) +
geom_point() +
geom_smooth(method = "lm", se = FALSE) +
labs(title = "Simpson Paradoksu: iliskiler",
x = "Gaga Uzunluğu (mm)",
y = "Gaga Derinliği (mm)") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
library(dplyr)
library(ggplot2)
unique(penguenler_v1$tur)
## [1] Adelie Gentoo Chinstrap
## Levels: Adelie Chinstrap Gentoo
adelie <- penguenler_v1 %>% filter(tur == "Adelie")
chinstrap <- penguenler_v1 %>% filter(tur == "Chinstrap")
gentoo <- penguenler_v1 %>% filter(tur == "Gentoo")
ggplot(penguenler_v1, aes(x = gaga_uzunlugu, y = gaga_derinligi, color = tur)) +
geom_point(size = 2, alpha = 0.7) +
geom_smooth(method = "lm", se = FALSE) +
labs(
title = "Tür Bazında Gaga Uzunluğu ve Derinliği İlişkisi",
x = "Gaga Uzunluğu (mm)",
y = "Gaga Derinliği (mm)",
color = "Tür"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
#Adelie türü için regresyon
model_adelie <- lm(gaga_derinligi ~ gaga_uzunlugu, data = adelie)
summary(model_adelie)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = 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
# Chinstrap türü için regresyon
model_chinstrap <- lm(gaga_derinligi ~ gaga_uzunlugu, data = chinstrap)
summary(model_chinstrap)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = 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
# Gentoo türü için regresyon
model_gentoo <- lm(gaga_derinligi ~ gaga_uzunlugu, data = gentoo)
summary(model_gentoo)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = 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
#Sonuçlar
sonuclar <- data.frame(
Tur = c("Adelie", "Chinstrap", "Gentoo"),
Eğim = c(coef(model_adelie)[2],
coef(model_chinstrap)[2],
coef(model_gentoo)[2]),
P_degeri = c(summary(model_adelie)$coefficients[2,4],
summary(model_chinstrap)$coefficients[2,4],
summary(model_gentoo)$coefficients[2,4])
)
print(sonuclar)
## Tur Eğim P_degeri
## 1 Adelie 0.1766834 1.514901e-06
## 2 Chinstrap 0.2222117 1.525539e-09
## 3 Gentoo 0.2076116 7.336624e-16
#Her penguen türünde gaga uzunluğu ile gaga derinliği arasında pozitif bir ilişki gözleniyor; Adelie, Chinstrap ve Gentoo penguenlerinde gaga uzadıkça derinlik de artıyor. Fakat tüm veriyi bir arada incelediğimizde bu ilişki tersine dönüyor gibi görünüyor. Yani türlere göre bakıldığında pozitif olan ilişki, toplam veri içinde negatifmiş gibi algılanabiliyor. Bu durum, tür bazlı analiz ve görselleştirmelerle daha iyi anlaşılabiliyor.
#Soru 1: Toplam veri setinde neden negatif ilişki gözlemlediniz? #Cevap: Türler arasında sistematik farklılık vardır. Örneğin Gentoo penguenlerinin gagaları daha uzun ama daha incedir; Adelie penguenlerinin ise daha kısa ama derin gagaları vardır. Bu tür farklar karıştırıldığında genel eğilim tersine dönmektedir.
#Soru 2: Tür bilgisi eklendiğinde neden ilişki yön değiştirdi? #Cevap:Tür bazında analiz, benzer özellikteki bireyleri karşılaştırır. Her tür arasında aslında pozitif ilişki vardır; fakat türler bir araya geldiğinde bu farklılıklar “Simpson Paradoksu” etkisi yaratmaktadır.
#Soru 3: Bu durumu Simpson Paradoksu çerçevesinde nasıl açıklarsınız? #Cevap: Simpson Paradoksu, alt gruplardaki ilişkilerin yönünün, veriler birleştirildiğinde tersine dönmesi durumudur. Bu örnekte, her türde pozitif ilişki olmasına rağmen toplu veride ilişki negatif olmaktadır.
#Soru 4: Bu örnek, verileri alt gruplara göre incelemenin neden önemli olduğunu nasıl göstermektedir? #Cevap: Toplu veriye bakmak, penguenlerde uzun gagaların daha sığ olduğu gibi hatalı bir izlenim yaratabilir. Oysaki alt gruplar incelendiğinde bu ilişkinin yönü değişir; bu da veri analizinde bağlamın ve alt grupların göz ardı edilmemesi gerektiğini kanıtlar.
#Bu çalışma, Palmer Penguins veri setinde Simpson Paradoksu’nun açık bir örneğini göstermektedir. Analizler, tür farklarının dikkate alınmaması durumunda ilişkilerin tersine dönebileceğini kanıtlamaktadır.