微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R:MICE 和向后逐步回归

如何解决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. 后向逐步回归真的不推荐用于变量选择。此外,对于插补数据集,还有更好的方法可以做到这一点。

  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)
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。