在 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 = ...)