Extraer de la distribución condicional
Si llamas a predict() sobre un modelo, siempre obtendrás el mismo valor para los mismos predictores. Esto produce poca variabilidad en los datos imputados. Para aumentarla, de modo que la imputación replique la variabilidad de los datos originales, podemos extraer de la distribución condicional. Esto significa que, en lugar de predecir siempre 1 cuando el modelo devuelve una probabilidad mayor que 0.5, podemos obtener la predicción de una distribución binomial descrita por la probabilidad que devuelve el modelo.
Vas a trabajar sobre el código que escribiste en el ejercicio anterior. Se eliminó la siguiente línea:
preds <- ifelse(preds >= 0.5, 1, 0)
Tu tarea es reemplazarla extrayendo de una distribución binomial. ¡Es solo una línea de código!
Este ejercicio forma parte del curso
Tratamiento de datos faltantes con imputaciones en R
Instrucciones del ejercicio
- Sobrescribe
predsmuestreando de una distribución binomial. - Pasa la longitud de
predscomo primer argumento. - Establece size en 1.
- Define
probcomo las probabilidades devueltas por el modelo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)
}