Imputace logistickou regresí
Oblíbenou volbou pro imputaci binárních proměnných je logistická regrese. Bohužel neexistuje funkce podobná impute_lm(), která by to udělala za tebe. Proto si takovou funkci napíšeš sám!
Funkci budeme nazývat impute_logreg(). Jejím prvním argumentem bude datový rámec df, jehož chybějící hodnoty byly inicializovány a který obsahuje chybějící hodnoty pouze ve sloupci, který chceme imputovat. Druhým argumentem bude formula pro model logistické regrese.
Funkce provede následující kroky:
- Zaznamená pozice chybějících hodnot.
- Sestaví model.
- Vytvoří předpovědi.
- Nahradí chybějící hodnoty předpověďmi.
Nedělej si starosti s řádkem, který vytváří imp_var – jde jen o způsob, jak z formule extrahovat název sloupce k imputaci. Pojďme na funkcionální programování!
Toto cvičení je součástí kurzu
Práce s chybějícími daty pomocí imputace v R
Pokyny k cvičení
- Vytvoř booleovskou masku pro místa, kde
df[imp_var]obsahuje chybějící hodnoty, a přiřaď ji domissing_imp_var. - Pomocí formule a dat, které funkce dostane jako argumenty, natrénuj model logistické regrese; nezapomeň nastavit správnou hodnotu
family, aby se natrénovala logistická regrese (předej ji bez uvozovek); model přiřaď dologreg_model. - Předpověz odpověď pomocí modelu a výsledek přiřaď do
preds; nezapomeň nastavit odpovídajícítypepředpovědi. - Pomocí
predsamissing_imp_varimputuj chybějící hodnoty.
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 <- ___
# Fit logistic regression mode
logreg_model <- ___(___, data = ___, family = ___)
# Predict the response and convert it to 0s and 1s
preds <- predict(___, type = ___)
preds <- ifelse(preds >= 0.5, 1, 0)
# Impute missing values with predictions
df[missing_imp_var, imp_var] <-___[___]
return(df)
}