Amostrando da distribuição condicional
Chamar predict() em um modelo sempre retorna o mesmo valor para os mesmos valores dos preditores. Isso resulta em pouca variabilidade nos dados imputados. Para aumentá-la, de modo que a imputação replique a variabilidade dos dados originais, podemos amostrar da distribuição condicional. Isso significa que, em vez de sempre prever 1 quando o modelo retorna uma probabilidade maior que 0,5, podemos sortear a previsão de uma distribuição binomial descrita pela probabilidade retornada pelo modelo.
Você vai trabalhar no código que escreveu no exercício anterior. A seguinte linha foi removida:
preds <- ifelse(preds >= 0.5, 1, 0)
Sua tarefa é preencher esse lugar amostrando de uma distribuição binomial. É apenas uma linha de código!
Este exercício faz parte do curso
Tratamento de Dados Ausentes com Imputações em R
Instruções do exercício
- Sobrescreva
predsamostrando de uma distribuição binomial. - Passe o comprimento de
predscomo primeiro argumento. - Defina size como 1.
- Defina
probcomo as probabilidades retornadas pelo modelo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)
}