Model tabanlı atama yaklaşımı

R'de Atamaya Dayalı Eksik Veri Doldurma

Michal Oleszak

Machine Learning Engineer

Model tabanlı atama

  • Her değişkeni farklı bir istatistiksel modelle atayın.
  • Bildiğimiz ilişkileri hesaba katabilir.
R'de Atamaya Dayalı Eksik Veri Doldurma

Model tabanlı atama prosedürü

  • Değişkenler üzerinde döngü kurun.
  • Her değişken için onu açıklayan bir model kurun.
  • Modeli kullanarak eksik değerleri tahmin edin.
  • Başta eksik olan konumları atayarak değişkenler arasında yineleyin.
R'de Atamaya Dayalı Eksik Veri Doldurma

Adım adım model tabanlı atama

Dört değişkenli (A, B, C ve D) ve beş satırlı bir veri çerçevesi; örnek verilerle dolu. İki değişkende (A ve C) ikişer eksik değer var, hepsi farklı satırlarda.

R'de Atamaya Dayalı Eksik Veri Doldurma

Adım adım model tabanlı atama

Dört değişkenli (A, B, C ve D) ve beş satırlı bir veri çerçevesi; örnek verilerle dolu. A’daki eksik değerler atanmış.

  1. A’daki eksikleri tahmin edin.
R'de Atamaya Dayalı Eksik Veri Doldurma

Adım adım model tabanlı atama

Dört değişkenli (A, B, C ve D) ve beş satırlı bir veri çerçevesi; örnek verilerle dolu. Hem A hem C’deki eksikler atanmış.

  1. A’daki eksikleri tahmin edin.
  2. A’da atananları gözlemlenmiş gibi kabul edip C’deki eksikleri tahmin edin.
R'de Atamaya Dayalı Eksik Veri Doldurma

Adım adım model tabanlı atama

Dört değişkenli (A, B, C ve D) ve beş satırlı bir veri çerçevesi; örnek verilerle dolu. C’deki eksik değerler atanmış.

  1. A’daki eksikleri tahmin edin.
  2. A’da atananları gözlemlenmiş gibi kabul edip C’deki eksikleri tahmin edin.
  3. C’de atananları gözlemlenmiş gibi kabul edip, A’daki ilk eksikleri yeniden tahmin edin.
  4. Yakınsamaya kadar sürdürün.
R'de Atamaya Dayalı Eksik Veri Doldurma

Model seçimi nasıl yapılır

Her değişken için model, türüne bağlıdır:

  • Sürekli değişkenler - doğrusal regresyon
  • İkili değişkenler - lojistik regresyon
  • Kategorik değişkenler - çok terimli lojistik regresyon
  • Sayım değişkenleri - Poisson regresyonu
R'de Atamaya Dayalı Eksik Veri Doldurma

Tekli doğrusal regresyonla atama

nhanes içinde Height ve Weight’i doğrusal modelle atayın:

library(simputation)
nhanes_imp <- impute_lm(nhanes, Height + Weight ~ .)

Gerçekten atanıp atanmadığını kontrol edin:

nhanes_imp %>% 
  is.na() %>% 
  colSums()
Age     Gender     Weight     Height   Diabetes    TotChol      Pulse PhysActive 
  0          0         32         30          1         85         32         26
R'de Atamaya Dayalı Eksik Veri Doldurma

Doğrusal regresyonla uygulama

Eksikleri hotdeck ile başlatın ve eksik konumları kaydedin:

nhanes_imp <- hotdeck(nhanes)
missing_height <- nhanes_imp$Height_imp
missing_weight <- nhanes_imp$Weight_imp

Height ve Weight üzerinde 5 kez yineleyin; başlangıçta eksik olan konumları atayın:

for (i in 1:5) {
  nhanes_imp$Height[missing_height] <- NA
  nhanes_imp <- impute_lm(nhanes_imp, Height ~ Age + Gender + Weight)
  nhanes_imp$Weight[missing_weight] <- NA
  nhanes_imp <- impute_lm(nhanes_imp, Weight ~ Age + Gender + Height)
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Yakınsamayı saptama



for (i in 1:5) {

  nhanes_imp$Height[missing_height] <- NA
  nhanes_imp <- impute_lm(nhanes, Height ~ Age + Gender + Weight)
  nhanes_imp$Weight[missing_weight] <- NA
  nhanes_imp <- impute_lm(nhanes, Weight ~ Age + Gender + Height)


}
R'de Atamaya Dayalı Eksik Veri Doldurma

Yakınsamayı saptama

diff_height <- c()
diff_weight <- c()
for (i in 1:5) {

  nhanes_imp$Height[missing_height] <- NA
  nhanes_imp <- impute_lm(nhanes, Height ~ Age + Gender + Weight)
  nhanes_imp$Weight[missing_weight] <- NA
  nhanes_imp <- impute_lm(nhanes, Weight ~ Age + Gender + Height)


}
R'de Atamaya Dayalı Eksik Veri Doldurma

Yakınsamayı saptama

diff_height <- c()
diff_weight <- c()
for (i in 1:5) {
  prev_iter <- nhanes_imp
  nhanes_imp$Height[missing_height] <- NA
  nhanes_imp <- impute_lm(nhanes, Height ~ Age + Gender + Weight)
  nhanes_imp$Weight[missing_weight] <- NA
  nhanes_imp <- impute_lm(nhanes, Weight ~ Age + Gender + Height)


}
R'de Atamaya Dayalı Eksik Veri Doldurma

Yakınsamayı saptama

diff_height <- c()
diff_weight <- c()
for (i in 1:5) {
  prev_iter <- nhanes_imp
  nhanes_imp$Height[missing_height] <- NA
  nhanes_imp <- impute_lm(nhanes, Height ~ Age + Gender + Weight)
  nhanes_imp$Weight[missing_weight] <- NA
  nhanes_imp <- impute_lm(nhanes, Weight ~ Age + Gender + Height)
  diff_height <- c(diff_height, mapc(prev_iter$Height, nhanes_imp$Height))
  diff_weight <- c(diff_weight, mapc(prev_iter$Weight, nhanes_imp$Weight))
}
R'de Atamaya Dayalı Eksik Veri Doldurma

Yakınsamayı saptama

İki çizgili bir çizgi grafik: biri Pulse, diğeri TotChol için. X ekseni yineleme sayısını, Y ekseni yinelemeler arasında atanan değerlerin ortalama mutlak yüzde değişimini gösterir. İlk yinelemeden sonra her iki değişkende değişim var. 2. yinelemeden itibaren artık değişmiyorlar.

R'de Atamaya Dayalı Eksik Veri Doldurma

Doğrusal regresyonla atama pratiği yapalım!

R'de Atamaya Dayalı Eksik Veri Doldurma

Preparing Video For Download...