Výběr z podmíněného rozdělení
Pouhé volání predict() na modelu vždy vrátí stejnou hodnotu pro stejné hodnoty prediktorů. To vede k nízké variabilitě imputovaných dat. Aby imputace lépe odrážela variabilitu původních dat, můžeme hodnoty odebírat z podmíněného rozdělení. Namísto toho, abychom vždy předpovídali 1, kdykoli model vrátí pravděpodobnost větší než 0,5, můžeme předpověď odebrat z binomického rozdělení popsaného pravděpodobností vrácenou modelem.
Budeš pracovat s kódem z předchozího cvičení. Byl z něj odstraněn následující řádek:
preds <- ifelse(preds >= 0.5, 1, 0)
Tvým úkolem je nahradit ho výběrem z binomického rozdělení. Stačí jediný řádek kódu!
Toto cvičení je součástí kurzu
Práce s chybějícími daty pomocí imputace v R
Pokyny k cvičení
- Přepiš
predsvýběrem vzorků z binomického rozdělení. - Předej délku
predsjako první argument. - Nastav size na 1.
- Nastav
probna pravděpodobnosti vrácené modelem.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)
}