R:MICE 和向后逐步回归

时间:2021-07-30 13:10:37

标签: r regression linear-regression logistic-regression r-mice

我使用以下代码估算了我的数据:

data_imp <- mice(data, m=5, maxit=50, meth='pmm', seed=500, printFlag=FALSE)

data.impute <- complete(data_imp, action = 1)

我想使用 stepAIC 函数执行向后逐步回归,以便找到最简约的模型。如何使用所有 5 个估算数据集而不是仅使用 1 个进行此操作?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您必须分别将其应用于每个数据集;请参阅下面的一些示例代码。

但是,我还要在这里给您两个重要的免责声明:

  1. 后向逐步回归真的不推荐用于变量选择。此外,对于插补数据集,还有更好的方法可以做到这一点。

  2. 从下面的代码中,您仍然需要决定如何将您的结果汇集到一个可解释的集合中。一种方法是简单地计算每个变量出现在最终模型中的频率。然而,这个过程隐含着信息的丢失。

可以在此处找到对这些要点的更广泛讨论: https://stats.stackexchange.com/questions/110585/stepwise-regression-modeling-using-multiply-imputed-data-sets

mice 的作者在他的书中还有一个关于变量选择的子章节: https://stefvanbuuren.name/fimd/sec-stepwise.html

因此我会考虑是否有更好的选择适合您。

示例代码

## I am using `mtcars`
## Let's ampute it, then impute it
data_imp <- mice(ampute(mtcars, prop = 0.001)$amp)

## Next, we loop over all imputed datasets
out <- lapply(seq_len(data_imp$m), function(i) {

  ## We create a dataset
  data.i <- complete(data_imp, i)

  ## We run our model
  fit <- lm(mpg ~ ., data = data.i)

  ## We apply `stepAIC`
  stepAIC(fit, trace = FALSE)
})