Ödev 2 _ Kayıp Veri
Bu ödevde, TIMSS 2015 uygulamasına ait bir kitapçığın Türkiye ve Amerika verilerini kullanacaksınız.
- Veri seti adı: “TRUSA.RDS”. Bu veri setini R ortamına aktarınız.
- Veri setinde eksik veri olup olmadığını kontrol ediniz.
## [1] 0
## [1] FALSE
“TRUSA” veri setinde kayıp veriye rastlanılmamıştır.
- Kitapçıktaki 35 maddenin toplamını hesaplayarak veri setine yeni bir sütun olarak ekleyiniz.
maddeler <- TRUSA %>%
select(starts_with("M0"))
TRUSA$Toplam <- rowSums(maddeler, na.rm = TRUE) #mutate ile yapmaya çalışınca hep hata aldım.Yeni eklenen toplam değişkeni ile toplamda 39 değişken veri setinde yer almaktadır.
- Toplam puanın her iki ülkeye göre betimsel istatistiklerini hesaplayınız.
TRUSA %>%
group_by(CNT) %>% #Ülke bazında betimsel istatistikleri vermek için gruplayacağız.
summarise(
ort = mean(Toplam, na.rm=TRUE),
med = median(Toplam, na.rm=TRUE),
ss = sd(Toplam, na.rm=TRUE),
var = var(Toplam, na.rm=TRUE),
min = min(Toplam, na.rm=TRUE),
max = max(Toplam, na.rm=TRUE),
top_eleman = n())## # A tibble: 2 × 8
## CNT ort med ss var min max top_eleman
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <int>
## 1 TUR 13.5 11 7.57 57.3 2 32 435
## 2 USA 17.0 17 7.53 56.7 1 34 716
- Toplam puanın, Türkiye ve ABD örneklemlerinde farklılaşıp farklılaşmadığını t testi ile test ediniz.
-İki bağımsız örneklem için bağımsız örneklem t-testi tercih edildi. -Bu ülkelere ait toplam puanlar 2 ayrı veri seti haline getirildi.
Turkiye <- filter(TRUSA, CNT== "TUR")
ABD <- filter(TRUSA, CNT== "USA")
bsiz_t_test <- t.test(Turkiye$Toplam, ABD$Toplam)
bsiz_t_test##
## Welch Two Sample t-test
##
## data: Turkiye$Toplam and ABD$Toplam
## t = -7.8242, df = 912.31, p-value = 1.41e-14
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -4.494510 -2.691921
## sample estimates:
## mean of x mean of y
## 13.45287 17.04609
Yapılan t-testine göre Türkiye ve ABD toplam puanları arasında istatistiksel olarak anlamlı fark vardır (t= -7.84, p<.001). Buradan hareketle ABD’deki öğrencilerin toplam puanları Türkiye’deki öğrencilerden daha yüksektir ve bu fark anlamlıdır.
- Veri setinde %5, %10 ve %15 oranında eksik veriler oluşturunuz.
#missMethods paketi eksik veri oluşturmak için kullanılıyor.
maddeler <- TRUSA %>%
select(starts_with("M0") , "Toplam" ) #daha önce olşuturduğun maddeler veri setine toplamı da ekliyorum
eksik_5 <- delete_MCAR(maddeler, p=0.05) #delete_MCAR fonksiyonu her değişkene eşit sayıda eksik veri ekliyor.
colSums(is.na(eksik_5)) #eksik veri olup olmadığına bakıyorum## M042182 M042081 M042049 M042052 M042076 M042302A M042302B M042302C
## 58 58 58 58 58 58 58 58
## M042100 M042202 M042240 M042093 M042271 M042268 M042159 M042164
## 58 58 58 58 58 58 58 58
## M042167 M062208 M062208A M062208B M062208C M062208D M062153 M062111A
## 58 58 58 58 58 58 58 58
## M062111B M062237 M062314 M062074 M062183 M062202 M062246 M062286
## 58 58 58 58 58 58 58 58
## M062325 M062106 M062124 Toplam
## 58 58 58 58
eksik_5 <- cbind(eksik_5, TRUSA$CNT) # e maddesindeki t testini tekrarlamak için CNT ekliyorum.
eksik_10 <- delete_MCAR(maddeler, p=0.10)
colSums(is.na(eksik_10))## M042182 M042081 M042049 M042052 M042076 M042302A M042302B M042302C
## 115 115 115 115 115 115 115 115
## M042100 M042202 M042240 M042093 M042271 M042268 M042159 M042164
## 115 115 115 115 115 115 115 115
## M042167 M062208 M062208A M062208B M062208C M062208D M062153 M062111A
## 115 115 115 115 115 115 115 115
## M062111B M062237 M062314 M062074 M062183 M062202 M062246 M062286
## 115 115 115 115 115 115 115 115
## M062325 M062106 M062124 Toplam
## 115 115 115 115
eksik_10 <- cbind(eksik_10, TRUSA$CNT)
eksik_15 <- delete_MCAR(maddeler, p=0.15)
colSums(is.na(eksik_15))## M042182 M042081 M042049 M042052 M042076 M042302A M042302B M042302C
## 173 173 173 173 173 173 173 173
## M042100 M042202 M042240 M042093 M042271 M042268 M042159 M042164
## 173 173 173 173 173 173 173 173
## M042167 M062208 M062208A M062208B M062208C M062208D M062153 M062111A
## 173 173 173 173 173 173 173 173
## M062111B M062237 M062314 M062074 M062183 M062202 M062246 M062286
## 173 173 173 173 173 173 173 173
## M062325 M062106 M062124 Toplam
## 173 173 173 173
- Oluşturulan eksik veri setlerinde önce eksik verinin rasgele olup olmadığını test ediniz. Ardından, liste bazında silme yöntemiyle eksik verileri temizleyerek e seçeneğinde gerçekleştirdiğiniz t testini tekrarlayınız. Tam veri ile elde edilen sonuçlarla karşılaştırınız.
## Warning in norm::prelim.norm(data): NAs introduced by coercion to integer range
## Warning in norm::prelim.norm(data): NAs introduced by coercion to integer range
## Warning in norm::prelim.norm(data): NAs introduced by coercion to integer range
#Liste bazında silme işlemi
na.omit(eksik_5)
na.omit(eksik_10)
na.omit(eksik_15)
#t-testi
E5_Tur <- filter(eksik_5, TRUSA$CNT== "TUR")
E5_ABD <- filter(eksik_5, TRUSA$CNT== "USA")
tt_eksik_5 <- t.test(E5_Tur$Toplam, E5_ABD$Toplam)
E10_Tur <- filter(eksik_10, TRUSA$CNT== "TUR")
E10_ABD <- filter(eksik_10, TRUSA$CNT== "USA")
tt_eksik_10 <- t.test(E10_Tur$Toplam, E10_ABD$Toplam)
E15_Tur <- filter(eksik_15, TRUSA$CNT== "TUR")
E15_ABD <- filter(eksik_15, TRUSA$CNT== "USA")
tt_eksik_15 <- t.test(E15_Tur$Toplam, E15_ABD$Toplam)Oluşturulan üç veri setine ait kayıp verilerin rastgele olup olmadığı
Little’s MCAR testi ile incelenmiş ve üç veri setindeki kayıp verilerin
tümünün rastgele olduğu görülmüştür (p= 1).
Eksik veri içeren veri
setleri üzerinde e maddesindeki t-testi tekrar edilmiştir ve sonuçlar şu
şekildedir:
-%5’lik veri setine ait t testi sonucuna göre Türkiye
ile ABD toplam puanları arasında anlamlı bir fark bulunmuştur (t= -7.58,
p < .05).
-%10’luk veri setine ait t testi sonucuna göre Türkiye
ile ABD toplam puanları arasında anlamlı bir fark bulunmuştur (t= -7.48,
p < .05).
-%15’lik veri setine ait t testi sonucuna göre Türkiye
ile ABD toplam puanları arasında anlamlı bir fark bulunmuştur (t= -7.82,
p < .05).
Sonuç olarak verilerdeki kayıpların miktarı arttıkça Türkiye ve ABD
arasındaki toplam puan farkının hala anlamlı olduğu görülmüştür.
- f seçeneğinde oluşturulan veri setlerindeki eksik verileri, belirlediğiniz bir kayıp veri atama yöntemiyle doldurunuz. Daha sonra, e seçeneğinde gerçekleştirdiğiniz t testini tekrar ediniz ve tam veri ile elde edilen sonuçlarla karşılaştırınız.
maddeler <- TRUSA %>%
select(starts_with("M0") , "Toplam" )
eksik_5 <- delete_MCAR(maddeler, p=0.05)
eksik_5 <- cbind(eksik_5, TRUSA$CNT)
eksik_10 <- delete_MCAR(maddeler, p=0.10)
eksik_10 <- cbind(eksik_10, TRUSA$CNT)
eksik_15 <- delete_MCAR(maddeler, p=0.15)
eksik_15 <- cbind(eksik_15, TRUSA$CNT)
#Ortalama ile atama yöntemi
ort5 <- eksik_5 %>%
mutate(across(where(is.numeric), ~ ifelse(is.na(.), mean(., na.rm = TRUE), .))) #chatGPTden aldım.
ort10 <- eksik_10 %>%
mutate(across(where(is.numeric), ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))
ort15 <- eksik_15 %>%
mutate(across(where(is.numeric), ~ ifelse(is.na(.), mean(., na.rm = TRUE), .)))
#t-test
ort5_Tur <- filter(ort5, TRUSA$CNT== "TUR")
ort5_ABD <- filter(ort5, TRUSA$CNT== "USA")
tt_ort_5 <- t.test(ort5_Tur$Toplam, ort5_ABD$Toplam)
ort10_Tur <- filter(ort10, TRUSA$CNT== "TUR")
ort10_ABD <- filter(ort10, TRUSA$CNT== "USA")
tt_ort_10 <- t.test(ort10_Tur$Toplam, ort10_ABD$Toplam)
ort15_Tur <- filter(ort15, TRUSA$CNT== "TUR")
ort15_ABD <- filter(ort15, TRUSA$CNT== "USA")
tt_ort_15 <- t.test(ort15_Tur$Toplam, ort15_ABD$Toplam)Oluşturulan üç veri setindeki kayıp verilere ortalama atama yöntemi
ile değer atanmıştır. Veri setleri üzerinde e maddesindeki t-testi
tekrar edilmiştir ve sonuçlar şu şekildedir:
-%5’lik veri setine
ait t testi sonucuna göre Türkiye ile ABD toplam puanları arasında
anlamlı bir fark bulunmuştur (t= -7.34, p < .05).
-%10’luk veri
setine ait t testi sonucuna göre Türkiye ile ABD toplam puanları
arasında anlamlı bir fark bulunmuştur (t= -7.94, p < .05).
-%15’lik veri setine ait t testi sonucuna göre Türkiye ile ABD toplam
puanları arasında anlamlı bir fark bulunmuştur (t= -7.00, p < .05).
Sonuç olarak verilerdeki kayıplara ortalama değer ile atama
yapıldığında Türkiye ve ABD arasındaki toplam puan farkının hala anlamlı
olduğu görülmüştür.
- Eksik veri oranının uygulanan yöntemlerin performansına etkisini açıklayınız.
Veri seti içindeki kayıp veri miktarı kayıp veri atama yöntemlerinin
performansını etkileyebilmektedir.Lİste bazında silme yöntemi ile kayıp
veri ile baş etme yönteminde kayıp verilere ait gözlemler direkt olarak
veri setinden çıkarılmaktadır. Bu durumda örneklem küçülmektedir. Eksik
verinin çok olması durumunda örneklem de oldukça küçüleceğinden
yapılacak analizlerin istatistiksel gücü etkilenebilir ve güvenirlik
düşebilir. Ortalama ile kayıp veri ile baş etme yönteminde kayıp
değerlere değişkenin ortalama değeri ya da grubun ortalama değeri
atanabilir. Bu durum ortalamayı dengelerken varyansı azaltabilmektedir.
Varyansın azalması ise yapılacak yorumların geçerliğini
etkilemektedir.EM yöntemi ile kayıp veri atamasında belirli bir hata
düzeyine erişilene kadar eldeki verilerden yola çıkılarak kestirimler
yapılır ve sonrasında bu kestirimlerle yeni modeller kurulur. Diğer iki
yönteme göre eksik veri oranı çok olsa da daha dengeli sonuçlar
verebilir.Çoklu atama yöntemi ile yapılan atamalarda veriye ilişkin
birkaç regresyon eşitliği kurulur ve sonrasında birleştirilerek kayıp
değere bir en iyi kestirimle atama yapılır. Eksik veri oranı fazla
olduğunda kurulan modellerde hatalar olabilir ya da aşırı
yapılandırılmış kestirimler olabilir.
Özetle kayıp verinin tüm veri içindeki oranına göre kayıp veri ile baş etme yöntemlerinin etkililiği değişkenlik göstermektedir.Her bir yöntemin avantajları ve dezavantajları bulunmaktadır ancak EM ve Çoklu Atıf gibi yöntemler ortalama ve liste bazında atama yöntemlerine göre kayıp verilerle -daha dengeli kestirimler yapabilmesi nedeniyle- daha iyi baş edebilir.
İyi kodlamalar:)
Ödevi yapmam yaklaşık 2 saatimi aldı. Rastgele NA atama kısmında bir hayli oyalandım.