← Ders 3 materyal merkezi

90 dakikalık öğrenci çalışma kitabı

Gruplu veriyi anlamak

12 hayalî gözlem içerir. UCL'nin resmî çalışma kitabı değildir. Öğretmen cevap anahtarı bu sayfada paylaşılmaz.

Hedef: Gruplara göre puanları karşılaştırırken “kaç kişinin puanı gerçekten biliniyor?” sorusunu ihmal etmemek.

00–10 · Geri çağırma10–25 · Güvenli filtre25–40 · Gruplar40–60 · İki özet yolu60–73 · Complete cases73–83 · Grafik83–90 · Çıkış bileti
00–10 DK

1. Önce tahmin et

Bir CSV'de grup A'nın altı satırı varsa ortalama puan mutlaka altı puandan mı hesaplanır? Eksik bir değeri 0'a çevirmek sonucu nasıl değiştirir? Ders 2'de tanıdığımız tabloyu düşün.

10–25 DK

2. Güvenli filtreleme

d <- read.csv("data/class_synthetic.csv",
              na.strings=c("","NA"), stringsAsFactors=FALSE)
d$group <- factor(d$group, levels=c("A","B"))
high <- d[!is.na(d$quiz_score) & d$quiz_score >= 70, ]
high[, c("student_id","quiz_score")]

Görev: Sadece B grubundan puanı bilinen kayıtları seç. Ardından puanı 75'ten yüksek kayıtların yalnız kimliklerini bul. NA ile yapılan karşılaştırma neden sorun çıkarabilir?

25–40 DK

3. Sayılar ve oranlar

table(d$group)
prop.table(table(d$group))

Görev: Grup büyüklüklerini ve tüm kayıtlar içindeki paylarını söyle. Bu sayıların puan ortalamasında kullanılan gözlem sayılarıyla eşit olup olmadığını incele.

40–60 DK

4. tapply ve aggregate

tapply(d$quiz_score,d$group,mean,na.rm=TRUE)
aggregate(quiz_score ~ group,data=d,FUN=mean)

Bu iki yaklaşım aynı tür sonucu mu döndürüyor? str() ile bak. Her grupta geçerli puan sayısını tapply() kullanarak bul. Sonra puanı en az 70 olanların geçerli puanlara oranını hesaplamayı dene.

Önemli: Paydanın bütün kayıtlar mı, yalnız geçerli puanlar mı olduğunu raporda söylemelisin.

60–73 DK

5. Complete-case seçimi

ok <- complete.cases(d[,c("study_hours","quiz_score")])
complete_data <- d[ok, ]
tapply(complete_data$quiz_score,complete_data$group,mean)

Görev: B grubunun ortalama puanı neden yalnız puana göre analizle iki değişkeni birlikte gerektiren analiz arasında farklı olabilir? Hangi kaydın dışlandığını incele ve yorumla.

73–83 DK

6. Karşılaştırmalı grafik

means <- tapply(d$quiz_score,d$group,mean,na.rm=TRUE)
barplot(means,ylim=c(0,100),
        xlab="Group",ylab="Mean quiz score",
        main="Synthetic group means")

Görev: Grafik yalnız ortalamaları gösteriyor. Veri dağılımı, örneklem büyüklüğü ve belirsizlik hakkında hangi bilgileri gizliyor? Yakın iki ortalama grupların eşdeğer olduğunu kanıtlar mı?

83–90 DK

7. Bağımsız çıkış bileti

  1. tapply ile aggregate farkını anlat.
  2. Toplam grup büyüklüğü ve geçerli puan sayısını ayır.
  3. na.rm=TRUE ile complete.cases tam aynı şey mi?
  4. İngilizce iki cümleyle betimleyici sonuç ve sınırlılık yaz.

Evde: group,valid_n,mean_score sütunlu özet tablo oluştur. Bir değeri yalnız kopyada NA yapıp değişimi incele.

TODO alıştırmalarını indir