开始使用免费开始使用

逻辑回归插补

对二元变量进行插补的常见方法是逻辑回归。遗憾的是,没有类似 impute_lm() 的函数可以直接完成这件事。因此,您将亲自编写这样一个函数!

我们把这个函数命名为 impute_logreg()。它的第 1 个参数是数据框 df,其中缺失值已经被初始化,而且只有待插补的那一列仍有缺失值。第 2 个参数是用于逻辑回归模型的 formula

该函数将执行以下步骤:

  • 记录缺失值的位置。
  • 构建模型。
  • 进行预测。
  • 用预测结果替换缺失值。

无需担心创建 imp_var 的那行代码——这只是从公式中提取待插补列名的一种方式。让我们来做一些函数式编程吧!

本练习是课程的一部分

R 中的缺失值填补处理

查看课程

练习说明

  • df[imp_var] 中的缺失位置创建布尔掩码,并将其赋值给 missing_imp_var
  • 使用传入函数的公式和数据拟合一个逻辑回归模型,注意设置正确的 family 以确保拟合的是逻辑回归(无需加引号传入);将模型赋给 logreg_model
  • 使用该模型预测响应并赋给 preds;记得设置合适的预测 type
  • 使用 predsmissing_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)
}
编辑并运行代码