CommencerCommencer gratuitement

Tirer depuis une distribution conditionnelle

Appeler simplement predict() sur un modèle renverra toujours la même valeur pour les mêmes valeurs des prédicteurs. Cela entraîne une faible variabilité dans les données imputées. Pour l’augmenter, afin que l’imputation reproduise la variabilité des données d’origine, nous pouvons tirer depuis la distribution conditionnelle. Concrètement, au lieu de prédire systématiquement 1 dès que le modèle renvoie une probabilité supérieure à 0,5, nous pouvons tirer la prédiction d’une distribution binomiale définie par la probabilité renvoyée par le modèle.

Vous allez reprendre le code que vous avez écrit à l’exercice précédent. La ligne suivante a été supprimée :

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

Votre tâche est de la remplacer par un tirage dans une distribution binomiale. Une seule ligne de code suffit !

Cet exercice fait partie du cours

Gérer les données manquantes avec des imputations en R

Afficher le cours

Instructions

  • Écrasez preds en échantillonnant depuis une distribution binomiale.
  • Passez la longueur de preds comme premier argument.
  • Définissez size à 1.
  • Fixez prob aux probabilités renvoyées par le modèle.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

 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)
}
Modifier et exécuter le code