绘制多重插补结果

6

我已经成功地使用R中的MICE包对我的问卷研究中缺失的数据进行了多重插补,并对汇总后的插补变量执行了线性回归。但我无法弄清如何提取单个汇总变量并在图表中绘制。有什么建议吗?

例如:

>imp <- mice(questionnaire) 
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP))  
>summary(pool(fit))  

我希望绘制汇总后的APE(平均预测误差)图,按照TMAS分类。

使用nhanes数据集的可重复示例:

> library(mice)
> nhanes
> imp <-mice(nhanes)
> fit <-with(imp, lm(bmi~chl+hyp))
> fit
> summary(pool(fit))

我希望绘制汇总后的chl与bmi的图表(例如)。

我能够达到的最好效果是:

> mat <-complete(imp, "long")
> plot(mat$chl~mat$bmi)

我认为这给出了所有5个输入的组合情节,但不完全是我要找的(我想)。


@Kafkaesque:提供一个可重现的示例会更好。可以使用“nhanes”数据,就像“?mice”页面上一样。 - Richie Cotton
如果您使用 complete(imp),则只会得到最后一次迭代。 - James
"long" 在 complete(imp, "long") 中表示给出所有 5 个填补值。我真正想要的是回归中使用的汇总填补,也就是想要绘制回归中使用的数据图。也许我误解了回归使用的数据,也许 complete(imp, "long") 就是我想要绘制的? - Frank Zafka
1个回答

10

with.mids()函数让回归分别在每个填充的数据集上进行,因此不是一次回归,而是5次回归。pool()函数只是平均估计系数,并根据填充数量调整方差,用于统计推断。

因此没有单独的汇总变量可供绘制。您可以对5个填充的数据集取平均值,并基于汇总系数重新创建某种“回归线”,例如:

# Averaged imputed data
combchl <- tapply(mat$chl,mat$.id,mean)
combbmi <- tapply(mat$bmi,mat$.id,mean)
combhyp <- tapply(mat$hyp,mat$.id,mean)

# coefficients
coefs <- pool(fit)$qbar

# regression results
x <- data.frame(
        int = rep(1,25),
        chl = seq(min(combchl),max(combchl),length.out=25),
        hyp = seq(min(combhyp),max(combhyp),length.out=25)
      )

y <- as.matrix(x) %*%coefs


# a plot
plot(combbmi~combchl)
lines(x$chl,y,col="red")

谢谢。这个平均绘图似乎比我之前采用的所有5个绘图合并在一起的效果要好。与我的原始分析中的列表删除绘图相比,没有任何结果有实质性的不同。再次感谢您的思考和努力。 - Frank Zafka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接