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(openintro)
## Zorunlu paket yükleniyor: airports
## Zorunlu paket yükleniyor: cherryblossom
## Zorunlu paket yükleniyor: usdata
library(palmerpenguins)
##
## Attaching package: 'palmerpenguins'
## The following objects are masked from 'package:datasets':
##
## penguins, penguins_raw
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>
#Değişken isimlerini Türkçeleştirme
penguins_tr <- penguins %>%
rename(
gaga_uzunlugu = bill_length_mm,
gaga_derinligi = bill_depth_mm,
yuzgec_uzunlugu = flipper_length_mm,
vucut_kutlesi = body_mass_g,
tur = species,
cinsiyet = sex
)
#Eksik Veri temizliği öncesi veri seti boyutu inceleme
dim(penguins_tr)
## [1] 344 8
#Eksik Veri temizleme
penguins_ev <- na.omit(penguins_tr)
#Eksik Veri temizliği Sonrası veri seti boyutu
dim(penguins_ev)
## [1] 333 8
#BMI değişkeni oluşturma
penguins_bmi<-penguins_ev %>% mutate(bmi=vucut_kutlesi/ yuzgec_uzunlugu)
#Türlere göre veri setini gruplayarak ortalamasını, standart sapmasını, minimum ve maksimum değerlerini hesaplama
ozet_tablo <- penguins_bmi %>%
group_by(tur) %>%
summarize(
ortalama_bmi = mean(bmi),
sd_bmi = sd(bmi),
min_bmi = min(bmi),
max_bmi = max(bmi)
)
#Sonuç görüntüleme
ozet_tablo
## # 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
#Kutu grafiği oluşturma
library(ggplot2)
ggplot(penguins_bmi, aes(x=tur,y=bmi,fill = tur)) +
geom_boxplot()+
labs(title="Türlere gore BMI Dağılımı",x="\nTür", y="Bmi\n")+
theme_minimal()
Grafiğe göre üç penguen türü arasında BMI (vücut kütlesi / yüzgeç uzunluğu oranı) açısından farklılıklar görülmektedir. Buna göre; Gentoo türü penguenlerin BMI değerleri diğer türlere göre daha yüksektir. Adelie türü penguenlerin BMI değerleri orta seviyededir. Dağılım Gentoo’ya göre daha düşük olmakla birlikte Chinstrap’tan biraz daha yüksektir. Chinstrap türü penguenler, üç tür arasında en düşük BMI değerlerine sahiptir. Bu türün kutu üstünde ve altında birkaç aykırı değer bulunmaktadır.
ggplot(penguins_ev, aes(x = gaga_derinligi, y = gaga_uzunlugu)) +
geom_point(color = "steelblue") +
geom_smooth(method = "lm", se = TRUE, color = "darkred") +
labs(
title = "Gaga Derinliği ile Gaga Uzunluğu Arasındaki İlişki",
x = "\nGaga Derinliği (mm)",
y = "Gaga Uzunluğu(mm)\n"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
Grafik incelendiğinde, gaga derinliği ile gaga uzunluğu arasında negatif yönlü bir ilişki olduğu görülmektedir. Gaga derinliği arttıkça, gaga uzunluğunun azalma eğiliminde olduğu söylenebilir.
model <- lm(gaga_uzunlugu ~ gaga_derinligi, data = penguins_ev)
summary(model)
##
## Call:
## lm(formula = gaga_uzunlugu ~ gaga_derinligi, data = penguins_ev)
##
## 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 -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
Analiz sonuçları, gaga uzunluğu ile gaga derinliği arasında negatif yönlü ve istatistiksel olarak anlamlı bir ilişki olduğunu göstermektedir (b = -0.63, p < .001). Bu bulguya göre penguenlerin gaga derinliği arttıkça, gaga uzunluğu azalma eğilimi göstermektedir.
adelie<- penguins_ev %>% filter(tur=="Adelie")
chinstrap<- penguins_ev %>% filter(tur=="Chinstrap")
gentoo <- penguins_ev %>% filter(tur == "Gentoo")
ggplot(penguins_ev,aes(x =gaga_derinligi , y =gaga_uzunlugu , color = tur))+
geom_point() +
facet_wrap(.~tur)+
geom_smooth(method="lm",se=FALSE)+
labs(
title = "Türlere Göre Gaga Derinliği - Gaga Uzunluğu İlişkisi",
x = "\nGaga Derinliği (mm)",
y = "Gaga Uzunluğu (mm)\n"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
# Adelie türü
adelie_reg <-lm(gaga_uzunlugu ~ gaga_derinligi, data = adelie)
summary(adelie_reg)
##
## Call:
## lm(formula = gaga_uzunlugu ~ gaga_derinligi, data = adelie)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.5431 -1.8369 0.0158 1.7181 6.5104
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 23.3668 3.0869 7.570 4.10e-12 ***
## gaga_derinligi 0.8425 0.1679 5.018 1.51e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.465 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ü
chinstrap_reg <- lm(gaga_uzunlugu ~ gaga_derinligi, data = chinstrap)
summary(chinstrap_reg)
##
## Call:
## lm(formula = gaga_uzunlugu ~ gaga_derinligi, data = chinstrap)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5.1163 -1.2641 -0.1254 1.4807 10.3590
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 13.428 5.057 2.655 0.00992 **
## gaga_derinligi 1.922 0.274 7.015 1.53e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.547 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ü
gentoo_reg <- lm(gaga_uzunlugu ~ gaga_derinligi, data = gentoo)
summary(gentoo_reg)
##
## Call:
## lm(formula = gaga_uzunlugu ~ gaga_derinligi, data = gentoo)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.914 -1.445 0.125 1.315 7.904
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16.6702 3.3110 5.035 1.75e-06 ***
## gaga_derinligi 2.0603 0.2203 9.352 7.34e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.36 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
Tablo <- data.frame(
Tur = c("Adelie", "Chinstrap", "Gentoo"),
egim = c(
round(coef(adelie_reg)[2],3),
round(coef(chinstrap_reg)[2],3),
round(coef(gentoo_reg)[2],3)
),
p_degeri = c(
summary(adelie_reg)$coefficients[2,4],
summary(chinstrap_reg)$coefficients[2,4],
summary(gentoo_reg)$coefficients[2,4])
)
print(Tablo)
## Tur egim p_degeri
## 1 Adelie 0.842 1.514901e-06
## 2 Chinstrap 1.922 1.525539e-09
## 3 Gentoo 2.060 7.336624e-16
Tür bazında yapılan regresyon analizine göre; türlerin hepsinde eğim pozitiftir, gaga uzunluğu ile gaga derinliği arasında pozitif yönlü ve istatistiksel olarak anlamlı bir ilişki bulunmaktadır (p < .001). Gaga derinliği arttıkça gaga uzunluğu da artmaktadır. Tüm türler birlikte analiz yapıldığında eğim negatif çıkarken, türler ayrı ayrı incelendiğinde hepsi pozitif çıkmaktadır.
Toplam düzeyde (tüm türler bir aradayken) gaga uzunluğu ile gaga derinliği arasında negatif bir ilişki görülmüştür.
Analiz tür bazında kendi içinde yapıldığı için,her türün doğal varyasyonu ortaya çıkmıştır.Her tür içinde gaga derinliği arttıkça gaga uzunluğunun da arttığı, yani pozitif bir ilişki olduğu görülmüştür. Toplam düzeydeki negatif ilişkinin kaynağı tür farklılıkları olması nedeniyle türleri ayırdığımızda gerçek ilişki yönü ortaya çıktı.
Bu örnekte olduğu gibi, veriler birleştirildiğinde elde edilen ilişkinin yönünün alt gruplara ayrıldığında tam tersine dönmesi anlamına gelmektedir. Bu, “toplam düzeydeki ilişki”nin yanıltıcı olabileceğini ve alt gruplar dikkate alınmadığında yanlış sonuçlara varılabileceğini gösterir.
Bu örnek, analizlerde alt grupların (tür, cinsiyet, okul türü vb.) göz önünde bulundurulmasının neden kritik olduğunu göstermektedir.Sadece toplam düzeydeki analizle yetinilseydi, “gaga derinliği arttıkça gaga uzunluğu azalıyor” sonucuna varılacakken, tür faktörü dikkate alındığında tam tersi bir eğilim olduğu ortaya çıkmaktadır. Bu nedenle, anlamlı ve doğru sonuçlara ulaşmak için alt gruplar bazında analizler yapılması kritik önem taşımaktadır.
Simpson paradoksu oldukça ilgi çekiciydi, kitlesel olarak ele aldığımız veri setlerinin analizlerin ne kadar yanıltıcı olabileceğini ve alt grupların ayrı analizlere tabi tutmanın kritik önemini fark etmeye yardımcı oldu. Bu ödevde içerik oluşturma ve başlıklandırma kısmına dikkat etmeye çalıştım. Lineer modelleme, facet_wrap ve eksik veri temizleme bu hafta aklımda kalanlardan oldu. Yaptığımız ödev ve datacamp alıştırmaları ile pek çok komuta aşina olmakla birlikte yazmaya başlayınca unuttuğum, takıldığım detaylar oluyor.