我已经通过多重插补开发了一个模型,使用mice
. 我想使用这个模型来预测新观察(不包含缺失数据)的响应,包括标准错误。将创建的模型对象传递mice
给predict
不起作用
使用内置nhanes
数据集的简单示例。假设我想开发一个形式为 的逻辑回归模型age == 3 ~ bmi + hyp + chl
,并使用该模型来预测 prob(age = 3 | bmi = 20, hyp = 2 and chl = 190)
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)
UseMethod(“predict”)中的错误:没有适用于“predict”的适用方法应用于类“c('mira','matrix')”的对象
pred <- predict(object = poolmodel, newdata = newdata, type = 'link', se.fit = TRUE)
UseMethod(“predict”)中的错误:没有适用于“predict”的适用方法应用于类“c('mipo','mira','matrix')”的对象
显然,使用池化系数和池化协方差矩阵手动计算预测响应和误差将是直接的。然而,真正的问题要大得多,模型依赖于一些样条曲线和相互作用,使计算变得相当复杂。我宁愿使用可以为我完成所有这些工作的现有功能。
R 中是否有一个简单的解决方案可以输出任何给定(池化)模型对象和任何给定新观察集的预测响应,而无需进行繁琐的代码修改?