我使用MICE開發了一個通過多重插補法建立的模型。我想使用這個模型來預測新觀察結果(不包含缺失數據)的響應,包括標準錯誤。將MICE中創建的模型對象傳遞給predict()函數不起作用使用通過MICE進行多次插補而開發的模型預測新觀測值的響應
一個使用內置nhanes數據集的簡單示例。說我想開發一個邏輯迴歸模型的形式age==3 ~ bmi + hyp + chl
,並使用此模型來預測,也就是說,概率(年齡= 3 | BMI = 20,HYP = 2,CHL = 190)
#impute missing data on bmi, hyp, chl
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)
#Error in UseMethod("predict") : no applicable method for 'predict' applied to an object of class "c('mira', 'matrix')"
pred <- predict(object=poolmodel, newdata=newdata, type='link', se.fit=TRUE)
#Error in UseMethod("predict") : no applicable method for 'predict' applied to an object of class "c('mipo', 'mira', 'matrix')"
顯然,將直截了當地使用合併係數和彙總協方差矩陣來手動計算預測的響應和誤差。然而,真正的問題要大得多,模型依賴於一些樣條和相互作用,使計算複雜化很大。我寧願使用現有的功能,可以爲我做這一切。
在R中是否有一個簡單的解決方案,可以輸出任何給定(合併)模型對象和任何給定的新觀察值的預測響應,而無需進行繁瑣的代碼修改?
謝謝。當我不需要標準錯誤時,我使用這種方法,但通常我確實需要它們。 – wjchulme