Koşullu dağılımdan çekim yapmak
predict() fonksiyonunu bir modelde doğrudan çağırmak, aynı yordayıcı değerlere karşılık her zaman aynı sonucu verir. Bu da atanan (impute edilen) verilerde düşük bir değişkenliğe yol açar. Bunu artırmak ve atamanın orijinal verideki değişkenliği yansıtmasını sağlamak için koşullu dağılımdan çekim yapabiliriz. Yani, model 0.5’ten büyük bir olasılık verdiğinde her zaman 1 tahmin etmek yerine, modelin döndürdüğü olasılık ile tanımlanan bir binom dağılımından tahmin çekebiliriz.
Önceki egzersizde yazdığın kod üzerinde çalışacaksın. Aşağıdaki satır kaldırıldı:
preds <- ifelse(preds >= 0.5, 1, 0)
Görevin, bunun yerine binom dağılımından çekim yapan bir satır eklemek. Sadece tek satır kod yeterli!
Bu egzersiz
R'de Atamaya Dayalı Eksik Veri Doldurma
kursunun bir parçasıdırEgzersiz talimatları
predsdeğişkenini bir binom dağılımdan örnekleyerek yeniden yaz.- İlk argüman olarak
preds'in uzunluğunu geçir. sizedeğerini 1 olarak ayarla.probargümanını modelin döndürdüğü olasılıklara ayarla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
impute_logreg <- function(df, formula) {
# Extract name of response variable
imp_var <- as.character(formula[2])
# Save locations where the response is missing
missing_imp_var <- is.na(df[imp_var])
# Fit logistic regression mode
logreg_model <- glm(formula, data = df, family = binomial)
# Predict the response
preds <- predict(logreg_model, type = "response")
# Sample the predictions from binomial distribution
preds <- ___(___, size = ___, prob = ___)
# Impute missing values with predictions
df[missing_imp_var, imp_var] <- preds[missing_imp_var]
return(df)
}