BaşlayınÜcretsiz Başlayın

Lojistik regresyon ile atama

İkili (binary) değişkenleri atamak için popüler bir seçenek lojistik regresyondur. Ne yazık ki bunu yapan impute_lm() benzeri bir fonksiyon yok. Bu yüzden böyle bir fonksiyonu kendin yazacaksın!

Fonksiyonun adı impute_logreg() olsun. İlk argümanı, eksik değerleri başlatılmış ve yalnızca atanacak sütunda eksik değerler bulunan bir veri çerçevesi df olacak. İkinci argüman ise lojistik regresyon modeli için bir formula olacak.

Fonksiyon şunları yapacak:

  • Eksik değerlerin konumlarını sakla.
  • Modeli kur.
  • Tahminleri yap.
  • Eksik değerleri tahminlerle değiştir.

imp_var oluşturan satır hakkında endişelenme - bu sadece formülden atanacak sütunun adını çıkarmanın bir yolu. Hadi biraz fonksiyonel programlama yapalım!

Bu egzersiz

R'de Atamaya Dayalı Eksik Veri Doldurma

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • df[imp_var] içinde eksik olan yerler için bir boolean maske oluştur ve missing_imp_var'a ata.
  • Fonksiyonun argüman olarak alacağı formül ve veriyi kullanarak bir lojistik regresyon modeli kur; lojistik regresyonun kurulmasını sağlamak için doğru family değerini ayarlamayı unutma (tırnaksız geçir); modeli logreg_model'e ata.
  • Modelle yanıtı tahmin et ve preds'e ata; uygun tahmin type değerini ayarlamayı unutma.
  • Eksik değerleri atamak için preds'i missing_imp_var ile birlikte kullan.

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 <- ___
  # Fit logistic regression mode
  logreg_model <- ___(___, data = ___, family = ___)
  # Predict the response and convert it to 0s and 1s
  preds <- predict(___, type = ___)
  preds <- ifelse(preds >= 0.5, 1, 0)
  # Impute missing values with predictions
  df[missing_imp_var, imp_var] <-___[___]
  return(df)
}
Kodu Düzenle ve Çalıştır