IniziaInizia gratis

Estrazione dalla distribuzione condizionata

Chiamare semplicemente predict() su un modello restituirà sempre lo stesso valore per gli stessi valori dei predittori. Questo porta a una bassa variabilità nei dati imputati. Per aumentarla, in modo che l’imputazione replichi la variabilità dei dati originali, possiamo estrarre dalla distribuzione condizionata. In pratica, invece di prevedere sempre 1 ogni volta che il modello produce una probabilità maggiore di 0.5, possiamo estrarre la previsione da una distribuzione binomiale descritta dalla probabilità restituita dal modello.

Lavorerai sul codice che hai scritto nell’esercizio precedente. È stata rimossa la seguente riga:

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

Il tuo compito è sostituirla con un’estrazione da una distribuzione binomiale. È solo una riga di codice!

Questo esercizio fa parte del corso

Gestione dei dati mancanti con imputazioni in R

Visualizza il corso

Istruzioni dell'esercizio

  • Sovrascrivi preds campionando da una distribuzione binomiale.
  • Passa la lunghezza di preds come primo argomento.
  • Imposta size a 1.
  • Imposta prob alle probabilità restituite dal modello.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

 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)
}
Modifica ed esegui il codice