我正在使用R中的MuMln包来获得平均模型(http://www.inside-r.org/packages/cran/MuMIn/docs/model.avg),并从中进行预测。该软件包还包括一个predict
函数,专门用于model.avg
(http://www.inside-r.org/node/123636)返回的对象。我尝试过使用列出的示例,代码如下:
# Example from Burnham and Anderson (2002), page 100:
fm1 <- lm(y ~ X1 + X2 + X3 + X4, data = Cement)
ms1 <- dredge(fm1)
# obtain model average for AIC delta <2
avgm <- model.avg(ms1, subset=delta<2)
# predict from the averaged model
averaged.full <- predict(avgm, full = TRUE)
但我一直在
predict.averaging中的错误(avgm,full = TRUE):只能从包含模型列表的“平均”对象进行预测
我不明白,因为我确实按照示例使用了model.avg返回的对象。我错过了什么吗?
答案 0 :(得分:3)
直接从"averaging"
对象创建"model.selection"
对象时,它不包含predict
工作所需的组件模型。您可以使用适合模型的model.avg(..., fit = TRUE)
。
为避免模型两次拟合,您可以先创建所有模型的列表
lapply(dredge(..., evaluate = FALSE), eval)
之后
在其上使用model.avg(..., subset = ...)
。