LoslegenKostenlos loslegen

Ziehen aus der bedingten Verteilung

Ein einfaches predict() auf einem Modell liefert für gleiche Prädiktorwerte immer den gleichen Wert. Dadurch entsteht nur eine geringe Variabilität in den imputierten Daten. Um diese zu erhöhen – damit die Imputation die Variabilität der Originaldaten besser nachbildet –, können wir aus der bedingten Verteilung ziehen. Das bedeutet: Anstatt immer 1 vorherzusagen, sobald die vom Modell ausgegebene Wahrscheinlichkeit größer als 0,5 ist, ziehen wir die Vorhersage aus einer binomialverteilten Zufallsvariable, deren Parameter die vom Modell zurückgegebene Wahrscheinlichkeit ist.

Du arbeitest mit dem Code aus der vorherigen Übung. Die folgende Zeile wurde entfernt:

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

Deine Aufgabe ist es, diese Stelle durch ein Ziehen aus einer Binomialverteilung zu ersetzen. Das ist nur eine einzige Codezeile!

Diese Übung ist Teil des Kurses

Fehlende Daten mit Imputationen in R behandeln

Kurs anzeigen

Anleitung zur Übung

  • Überschreibe preds, indem du aus einer Binomialverteilung samplest.
  • Übergib die Länge von preds als erstes Argument.
  • Setze size auf 1.
  • Setze prob auf die vom Modell zurückgegebenen Wahrscheinlichkeiten.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

 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)
}
Code bearbeiten und ausführen