开始使用免费开始使用

从条件分布中抽样

直接对模型调用 predict(),在给定相同自变量时总会返回相同的值。这会导致填补数据的变异性很小。为增大变异性,使填补能复现原始数据的波动,我们可以从条件分布中抽样。也就是说,与其当模型输出的概率大于 0.5 时总是预测为 1,不如根据模型返回的概率,从二项分布中抽取预测值。

您将基于上一个练习中编写的代码继续完成。本行代码已被移除:

  preds <- ifelse(preds >= 0.5, 1, 0)

您的任务是在其位置改为从二项分布中抽样。只需一行代码即可!

本练习是课程的一部分

R 中的缺失值填补处理

查看课程

练习说明

  • 通过从二项分布采样来覆盖 preds
  • preds 的长度作为第一个参数传入。
  • 将 size 设为 1。
  • prob 设为模型返回的概率。

交互式实操练习

通过完成这段示例代码来试试这个练习。

 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)
}
编辑并运行代码