3

使用该mice软件包,我们如何检查汇总分析的残差?

library(mice) 
imp <- mice(nhanes, seed = 23109)
fit <- with(imp, lm(chl ~ age + bmi))
pool(fit)
summary(pool(fit))

fit包含对每个估算数据集和pool(fit)汇总结果的分析。是否有命令检查标准lm对象的残差,例如plot(pool(fit))

4

2 回答 2

3

我遇到了同样的问题,我用一个非常详尽的解决方案解决了它。我为每个单独的估算数据集保存了残差和拟合值。如果您只有有限数量的数据集,这可以正常工作,但如果您有更多数据集(我有 75 个,所以我的脚本变得很长),这将变得更加复杂。我将根据一个包含 5 个估算数据集的示例来解释我的解决方案:

 # Computing and saving the mean residual per individual over 5 imputed datasets
 RS1 <-residuals(model1$ana[[1]])+residuals(model1$ana[[2]])+residuals(model1$ana[[3]])+residuals(model1$ana[[4]])+residuals(model1$ana[[5]])
 RSmodel1 <- RS1 / 5 
 # Computing and saving the mean predicted value per individual over 5 imputed datasets     
 PS1 <-predict(model1$ana[[1]])+predict(model1$ana[[2]])+predict(model1$ana[[3]])+predict(model1$ana[[4]])+predict(model1$ana[[5]])
 PSmodel1 <- PS1 / 5
 # Creating the residual plot 
 plot(RSmodel1, PSmodel1) 

我希望这能帮到您!我很清楚我的解决方案很不方便,但它会完成这项工作:)

于 2017-07-08T19:20:59.977 回答
2

只是为了改进 Floor Middel 所做的事情:

  RS1=NULL
  PS1=NULL

  for(i in 1:5){
  RS1=rbind(RS1,residuals(model1$analyses[[i]]))
  RS=colMeans(RS1)
  PS1=rbind(PS1,predict(model1$analyses[[i]])) 
  PS=colMeans(PS1)}


  plot(RS,PS)
于 2018-12-21T09:58:41.003 回答