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, kursun bir parçasıdır
R'de Atamaya Dayalı Eksik Veri Doldurma
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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)
}