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
Istruzioni dell'esercizio
- Sovrascrivi
predscampionando da una distribuzione binomiale. - Passa la lunghezza di
predscome primo argomento. - Imposta size a 1.
- Imposta
proballe 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)
}