在 R 中使用模型平均和使用 MuMln 进行预测时出错
Error using model averaging and predicting with MuMln in R
我正在使用 R 中的 MuMln 包来获得平均模型 (http://www.inside-r.org/packages/cran/MuMIn/docs/model.avg), and predict from that. The package also includes a predict
function specifically for an object returned by 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)
但我不断收到
Error in predict.averaging(avgm, full = TRUE): can predict only from 'averaging' object containing model list
我不明白,因为我确实按照示例并使用了 model.avg 返回的对象。我错过了什么吗?
当您直接从 "model.selection"
对象创建 "averaging"
对象时,它不包含 predict
工作所需的组件模型。您可以使用 model.avg(..., fit = TRUE)
再次拟合模型。
为避免两次拟合模型,您可以先创建一个包含所有模型的列表
lapply(dredge(..., evaluate = FALSE), eval)
及之后
在上面使用 model.avg(..., subset = ...)
。
我正在使用 R 中的 MuMln 包来获得平均模型 (http://www.inside-r.org/packages/cran/MuMIn/docs/model.avg), and predict from that. The package also includes a predict
function specifically for an object returned by 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)
但我不断收到
Error in predict.averaging(avgm, full = TRUE): can predict only from 'averaging' object containing model list
我不明白,因为我确实按照示例并使用了 model.avg 返回的对象。我错过了什么吗?
当您直接从 "model.selection"
对象创建 "averaging"
对象时,它不包含 predict
工作所需的组件模型。您可以使用 model.avg(..., fit = TRUE)
再次拟合模型。
为避免两次拟合模型,您可以先创建一个包含所有模型的列表
lapply(dredge(..., evaluate = FALSE), eval)
及之后
在上面使用 model.avg(..., subset = ...)
。