提前感谢所有帮助。
我想从我的模型平均结果中得出类似于以下的图。此图是使用effect()
包中的effects
函数从单个模型生成的。
据我所知,这无法通过model.avg()
函数的模型平均结果来实现,因此我试图通过先预测模型平均结果然后创建图来获得相似的结果。
我从这个data建立了两个模型:
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
,则预测函数运行良好,因此,我认为我提供给newdata
的数据帧的结构不合适。
如果有人能够帮助我正确构建newdata
的结构,以便我可以对fseason*fRHDV2_arrive_cat
的每个组合产生预测,将不胜感激?我相信一旦有了预测,我就能制作出想要的情节。
我的情况与另一篇文章(here)中描述的情况非常相似,但仍未得到解答。上面我已经描述了我尝试通过另一种方式实现相似情节的尝试。我还注意到,还有其他类似的帖子,例如here;我还没有发现这些对我的情况有用。
答案 0 :(得分: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"