Zacznij terazZacznij za darmo

Losowanie z rozkładu warunkowego

Samo wywołanie funkcji predict() na modelu zawsze zwróci tę samą wartość dla tych samych wartości predyktorów. Powoduje to małą zmienność w imputowanych danych. Aby ją zwiększyć – tak żeby imputacja odzwierciedlała zmienność z oryginalnych danych – możemy losować z rozkładu warunkowego. Oznacza to, że zamiast zawsze przewidywać 1, gdy model zwraca prawdopodobieństwo większe niż 0,5, losujemy przewidywaną wartość z rozkładu dwumianowego opisanego prawdopodobieństwem zwróconym przez model.

Będziesz pracować na kodzie napisanym w poprzednim ćwiczeniu. Usunięto z niego następującą linię:

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

Twoim zadaniem jest zastąpienie jej losowaniem z rozkładu dwumianowego. To tylko jedna linijka kodu!

To ćwiczenie jest częścią kursu

Obsługa brakujących danych z imputacją w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Nadpisz preds, próbkując z rozkładu dwumianowego.
  • Przekaż długość preds jako pierwszy argument.
  • Ustaw size na 1.
  • Ustaw prob na prawdopodobieństwa zwrócone przez model.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

 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)
}
Edytuj i uruchom kod