MulaiMulai sekarang secara gratis

Mengambil sampel dari distribusi kondisional

Memanggil predict() pada sebuah model akan selalu mengembalikan nilai yang sama untuk nilai prediktor yang sama. Ini menghasilkan keragaman yang kecil pada data imputasi. Untuk meningkatkannya, agar imputasi mereplikasi keragaman dari data asli, kita dapat mengambil sampel dari distribusi kondisional. Artinya, alih-alih selalu memprediksi 1 setiap kali model menghasilkan probabilitas lebih besar dari 0,5, kita dapat mengambil prediksi dari distribusi binomial yang ditentukan oleh probabilitas yang dikembalikan model.

Anda akan bekerja pada kode yang telah Anda tulis di latihan sebelumnya. Baris berikut telah dihapus:

  preds <- ifelse(preds >= 0.5, 1, 0)

Tugas Anda adalah menggantinya dengan pengambilan sampel dari distribusi binomial. Cukup satu baris kode!

Latihan ini adalah bagian dari kursus

Menangani Data Hilang dengan Imputasi di R

Lihat Kursus

Petunjuk latihan

  • Timpa preds dengan mengambil sampel dari distribusi binomial.
  • Berikan panjang preds sebagai argumen pertama.
  • Atur size ke 1.
  • Atur prob ke probabilitas yang dikembalikan oleh model.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

 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)
}
Edit dan Jalankan Kode