【发布时间】:2015-12-10 17:59:33
【问题描述】:
我使用mice 通过多重插补开发了一个模型。我想使用这个模型来预测新观察(不包含缺失数据)的响应,包括标准误差。将mice 中创建的模型对象传递给predict 不起作用
使用内置 nhanes 数据集的简单示例。假设我想开发一个 age == 3 ~ bmi + hyp + chl 形式的逻辑回归模型,并使用该模型来预测概率(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 中是否有一个简单的解决方案可以输出任何给定(池化)模型对象和任何给定新观察集的预测响应,而无需进行繁琐的代码修改?
【问题讨论】: