Ortalama ile atama

R'de Atamaya Dayalı Eksik Veri Doldurma

Michal Oleszak

Machine Learning Engineer

Atama sözlüğü

Atama (imputation) = eksik değerlerin ne olabileceğine dair bilinçli tahmin yapma

  • Bağışçı (donör) tabanlı atama - eksikler, diğer tam gözlemlerle doldurulur.
  • Model tabanlı atama - eksikler, istatistiksel veya makine öğrenimi modeliyle tahmin edilir.

Bu bölüm bağışçı tabanlı yöntemlere odaklanır:

  • Ortalama ile atama
  • Hot-deck atama
  • kNN atama
R'de Atamaya Dayalı Eksik Veri Doldurma

Ortalama ile atama

İki sütunlu bir tablo: ham veride bir eksik değer var; atanan veride, eksik değer ortalama ile doldurulmuş.

Ortalama ile atama, uzun dönem ortalaması etrafında rastgele dalgalanan zaman serilerinde iyi çalışır.

Kesitsel verilerde ise genelde çok kötü bir seçimdir:

  • Değişkenler arası ilişkileri bozar.
  • Atanan değerlerde varyans yoktur.
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada ortalama ile atama

Görev: NHANES verisinde Height ve Weight için ortalama ile atama yapın.

  • Her değerin başlangıçta eksik olup olmadığını belirten ikili göstergeler oluşturun.
nhanes <- nhanes %>% 
  mutate(Height_imp = ifelse(is.na(Height), TRUE, FALSE)) %>% 
  mutate(Weight_imp = ifelse(is.na(Weight), TRUE, FALSE))
  • Height ve Weight’teki eksik değerleri, kendi ortalamalarıyla değiştirin.
nhanes_imp <- nhanes %>% 
  mutate(Height = ifelse(is.na(Height), mean(Height, na.rm = TRUE), Height)) %>% 
  mutate(Weight = ifelse(is.na(Weight), mean(Weight, na.rm = TRUE), Weight))
R'de Atamaya Dayalı Eksik Veri Doldurma

Ortalama ile atanmış NHANES verisi

nhanes_imp %>%
    select(Weight, Height, Height_imp, Weight_imp) %>%
    head()
     Weight   Height Height_imp Weight_imp
1  73.20000 166.2499       TRUE      FALSE
2  72.30000 166.2499       TRUE      FALSE
3  57.70000 158.9000      FALSE      FALSE
4  88.90000 183.3000      FALSE      FALSE
5  45.10000 157.6000      FALSE      FALSE
6  66.77065 158.4000      FALSE       TRUE
R'de Atamaya Dayalı Eksik Veri Doldurma

Atama kalitesini değerlendirme: kenar grafiği

nhanes_imp %>% select(Weight, Height, Height_imp, Weight_imp) %>% marginplot(delimiter="imp")

Bir kenar grafiği: "Height" ve "Weight" saçılım grafiğinde, iki değişkenden birinde atama yapılan değerler farklı renkle vurgulanmış.

R'de Atamaya Dayalı Eksik Veri Doldurma

Ortalama ile atamanın sorunları

Değişkenler arası ilişkiyi bozma:

  • Height ve Weight ortalama ile atanınca, pozitif korelasyon zayıflar.
  • Birini diğeriyle tahmin eden modeller, uç atanan değerlere aldanır ve yanlı sonuçlar üretir.

Atanan veride değişkenlik yok:

  • Varyans azalınca, tüm standart hatalar küçümsenir. Bu da güvenilir hipotez testini ve güven aralığı hesaplarını engeller.
R'de Atamaya Dayalı Eksik Veri Doldurma

Medyan ve mod ile atama

  • Ortalama yerine medyan veya mod ile atama yapılabilir.
  • Aykırı değerler varsa medyan atama daha uygundur.
  • Kategorik değişkenler için ortalama/medyan hesaplanamaz; mod kullanılır.
  • Medyan ve mod atama, ortalama atamayla aynı sakıncalara sahiptir.

Bir kenar grafiği: "Height" ve "Weight" saçılım grafiğinde, iki değişkenden birinde atama yapılan değerler farklı renkle vurgulanmış.

R'de Atamaya Dayalı Eksik Veri Doldurma

Hadi pratik yapalım!

R'de Atamaya Dayalı Eksik Veri Doldurma

Preparing Video For Download...