開始使用免費開始

羅吉斯迴歸插補

用於插補二元變數的一個常見選擇是羅吉斯迴歸。不過,沒有像 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)
}
編輯並執行程式碼