从平均 GLM 模型绘制预测:eval(predvars, data, env) 错误:未找到对象 'x3'

Plotting prediction from averaged GLM model: Error in eval(predvars, data, env) : object 'x3' not found

我已经制作了一个平均 GLM 模型(用于查找物种的栖息地偏好),我想绘制每个最重要变量“x1”和“x3”(林下植物)的关系形状cover 和 canopy cover),针对我的响应变量“物种”(物种存在)。我一直在使用“predict”(predict.averaging)函数,但我一直运行进入同样的错误:

Error in eval(predvars, data, env) : object 'x3' not found

更多详情和代码:

我的数据集“data.csv”是一个包含 13 行的 table。前 12 行是按比例缩放的栖息地变量(10 个连续变量,2 个分类变量),名为 x1-x12。第 13 行是响应变量 – 物种 presence/absence(1 或 0)。 这是我的代码:

library(MuMIn)

dataset <- read.csv(file = 'data.csv', stringsAsFactors = FALSE)

options(na.action = "na.fail")

m1 <- glm(species ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10 + x11 + x12, data=Dataset, family=binomial())

ms1 <- dredge(m1)#运行不同型号组合

d2subset <- get.models(ms1, subset = delta < 2) #选择delta AIC <2的模型。

avgm <- model.avg(d2subset) #DeltaAIC<2 个模型取平均值。

summary(avgm) #显示 'x1' 是最重要的变量。

以下代码试图根据平均模型进行预测,导致错误:

predict(avgm, data.frame(dataset$x1), se.fit = TRUE, type = "link", backtransform = TRUE, full = TRUE)

产生的错误:

Error in predict.averaging(avgm, dataset$x1), se.fit = TRUE, :

'predict' for models '2211', '163', '147', '179', '2227', '183', '131', '2195', '167', '2275', '227', '243', '211', '148', '1171', '435', '151', '3235', '247', '2215', '155', '2231', '659', '2291', '2219' and '171' caused errors.

In addition: There were 26 warnings (use warnings() to see them)

Warning messages: 1: In eval(predvars, data, env) : object 'x3' not found

2-13: In eval(predvars, data, env) : object 'x3' not found

14: In eval(predvars, data, env) : object 'x5' not found

15-26: In eval(predvars, data, env) : object 'x3' not found

我对此进行了很多调查,但我仍然不明白错误的来源或解决方法。如果有任何建议,我将不胜感激。谢谢!

由于模型包含协变量 x1-x12,您需要包含 predict 的所有变量,而不仅仅是 x1.