0

提前感谢所有帮助。

我想从我的模型平均结果中生成一个类似于下面的图。effect()该图是使用包中的函数从单个模型生成的effects

期望的情节结果

据我所知,这无法从model.avg()函数的模型平均结果中实现,因此我试图通过首先预测我的模型平均结果然后创建一个图来实现类似的结果。

我根据这些数据构建了两个模型:

igm_20 <- glmmTMB(igm_pres ~  fRHDV2_arrive_cat + fseason + sage + save_ajust_abun + fseason*fRHDV2_arrive_cat + (1 | fsite), data = test, family = binomial)
igm_21 <- glmmTMB(igm_pres ~  fRHDV2_arrive_cat + fseason + sage + save_ajust_abun + fseason*fRHDV2_arrive_cat + sage*fRHDV2_arrive_cat + (1 | fsite), data = test, family = binomial)

我可以像这样平均这些模型:

mod_ave_list_1 <- list(igm_20, igm_21)
mod_ave_1 <- model.avg(mod_ave_list_1, rank = AICc)
s1 <- summary(mod_ave_1)

fseason*fRHDV2_arrive_cat然后,我尝试根据提供的数据集的每种组合的模型平均结果进行预测test

a <- as.data.frame(c("Summer", "Autumn", "Winter", "Spring", "Summer", "Autumn", "Winter", "Spring"))
a$fRHDV2_arrive_cat <- c("Pre-arrival", "Post-arrival", "Pre-arrival", "Post-arrival", "Pre-arrival", "Post-arrival", "Pre-arrival", "Post-arrival")
colnames(a) <- c("fseason", "fRHDV2_arrive_cat")

predict(mod_ave_1, full = TRUE, backtransform = TRUE, newdata = a, se.fit = TRUE)

如果我不包含newdata = a, predict 函数运行良好,因此我相信我提供的数据框newdata的结构不合适。

如果有人能够帮助我newdata正确构建结构,以便我可以为每种组合生成预测,fseason*fRHDV2_arrive_cat将不胜感激?我相信一旦我有了预测,我就可以制作出想要的情节。

我的情况与另一篇文章(此处)中描述的情况非常相似,但仍未得到答复。上面我已经描述了我通过另一种方式实现类似情节的尝试。我还注意到还有其他类似的帖子,例如这里;我没有发现这些对我的情况有用。

4

1 回答 1

0

newdata必须包括模型使用的所有解释变量,而目前没有。

预测所需的变量:

all.vars(formula(mod_ave_1)[-2]) # extracts all names from formula minus response
# [1] "fRHDV2_arrive_cat" "fseason"           "sage"              "save_ajust_abun"  

新数据中的变量:

colnames(a)
# [1] "fseason"           "fRHDV2_arrive_cat"
于 2019-12-19T14:47:05.863 回答