绘制多重插补结果
Posted
技术标签:
【中文标题】绘制多重插补结果【英文标题】:Plot Multiple Imputation Results 【发布时间】:2011-04-04 16:23:39 【问题描述】:我已使用 R 中的 MICE 包成功完成了对问卷调查缺失数据的多重插补,并对汇总的插补变量执行了线性回归。我似乎无法弄清楚如何提取单个汇集变量并在图表中绘图。有什么想法吗?
例如
>imp <- mice(questionnaire)
>fit <- with(imp, lm(APE~TMAS+APB+APA+FOAP))
>summary(pool(fit))
我想通过 TMAS 绘制池化 APE。
使用 nhanes 的可重现示例:
> library(mice)
> nhanes
> imp <-mice(nhanes)
> fit <-with(imp, lm(bmi~chl+hyp))
> fit
> summary(pool(fit))
我想针对池化 bmi 绘制池化 chl(例如)。
我能做到的最好的事情是
> mat <-complete(imp, "long")
> plot(mat$chl~mat$bmi)
我相信这给出了所有 5 个插补的组合图,并不是我想要的(我认为)。
【问题讨论】:
@Kafkaesque:你最好提供一个可重现的例子。也许与nhanes
数据类似?mice
页面。
如果你使用complete(imp)
,你只会得到最后一次迭代
complete(imp, "long") 中的“long”给出了所有 5 个插补。我真正想要的是回归中使用的汇总插补,即想要绘制回归中使用的数据图。也许我误解了回归使用的数据,也许 complete(imp, "long") 是我想要绘制的?
【参考方案1】:
底层的 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 个)组合情节更好。没有一个结果与我原始分析的列表删除图有很大不同。再次感谢您的想法和努力。以上是关于绘制多重插补结果的主要内容,如果未能解决你的问题,请参考以下文章