使用通过MICE进行多重插补开发的模型来预测新观测结果的响应

9
我使用多重插补开发了一个模型。我希望使用此模型来预测新观测值的响应(不包含缺失数据),包括标准误差。将在中创建的模型对象传递给predict无法实现。
以内置的数据集为例,我想要开发一个逻辑回归模型,其形式为age == 3 ~ bmi + hyp + chl,并使用该模型来预测,例如,当时,prob(age = 3)
library('mice')
imp<-mice(nhanes, seed = 1)

#create model on each imputed dataset
model <- with(imp, glm(age == 3 ~ bmi + hyp + chl, family = binomial))

#pool models into one
poolmodel <- pool(model)

#new data
newdata <- data.frame(bmi = 20, hyp = 2, chl = 190)

#attempt to predict response using predict() function
pred <- predict(object = model, newdata = newdata, type = 'link', se.fit = TRUE)

使用方法("predict")出错: 对象类别为"c('mira', 'matrix')",无适用于预测的方法

pred <- predict(object = poolmodel, newdata = newdata, type = 'link', se.fit = TRUE)

使用方法"predict"的错误:无法应用于"class 'mipo','mira','matrix'"类别的对象

显然,使用汇总系数和汇总协方差矩阵手动计算预测响应和误差是很简单的。然而,实际问题要复杂得多,模型依赖于一些样条函数和交互作用,这使得计算变得相当复杂。我更愿意使用现有的函数来完成所有这些工作。

在R中是否有一个简单的解决方案,可以输出任何给定(汇总)模型对象和任何给定新观察值集的预测响应,而不必进行繁琐的代码修改?

1个回答

1
一种做法是将所有填补好的数据堆叠在一起,然后在这个完整的数据集上拟合模型。之后您可以像平常一样使用 predict 函数。汇总生成的参数估计值实际上是在单独对每个填补好的数据拟合相同模型时得到的参数估计值的平均值。当然,在这种情况下,每个协变量的标准误被低估了。

谢谢。当我不需要标准误差时,我会使用这种方法,但通常我确实需要它们。 - wjchulme

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