羅吉斯迴歸插補
用於插補二元變數的一個常見選擇是羅吉斯迴歸。不過,沒有像 impute_lm() 這樣的現成函式可以直接使用。所以你將自己撰寫一個!
我們把這個函式命名為 impute_logreg()。第一個引數是資料框 df,其中遺漏值已經初始化,且只有要被插補的那一欄仍有遺漏值。第二個引數是羅吉斯迴歸模型的 formula。
這個函式會執行以下步驟:
- 保留遺漏值的位置。
- 建立模型。
- 進行預測。
- 以預測值取代遺漏值。
不必擔心建立 imp_var 的那一行——這只是從 formula 中取出要插補欄位名稱的方法。來做點函式式程式設計吧!
本練習屬於課程
在 R 中以插補處理遺漏值
練習說明
- 建立
df[imp_var]為遺漏的位置布林遮罩,指定為missing_imp_var。 - 使用傳入的 formula 與 data 配適羅吉斯迴歸模型,記得設定正確的
family以確保執行的是羅吉斯迴歸(不加引號傳入);將模型指定為logreg_model。 - 以該模型預測反應變數並指定為
preds;記得設定合適的預測type。 - 使用
preds配合missing_imp_var來插補遺漏值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)
}