从模型平均结果预测:MuMIn
Predict from model average results: MuMIn
在此先感谢所有帮助。
我想根据我的模型平均结果生成类似于下面的图。该图是使用 effects
包中的 effect()
函数从单个模型生成的。
Desired plot outcome
据我所知,这无法通过 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
的每种组合进行预测,我将不胜感激?我相信一旦有了预测,我就可以制作出想要的情节。
我的情况与另一个 post 中描述的非常相似(here), which remains unanswered. Above I have described my attempt to achieve a similar plot via another means. I also note that there are other similar posts, such as here;我没有发现这些对我的情况有用。
您的 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"
在此先感谢所有帮助。
我想根据我的模型平均结果生成类似于下面的图。该图是使用 effects
包中的 effect()
函数从单个模型生成的。
Desired plot outcome
据我所知,这无法通过 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
的每种组合进行预测,我将不胜感激?我相信一旦有了预测,我就可以制作出想要的情节。
我的情况与另一个 post 中描述的非常相似(here), which remains unanswered. Above I have described my attempt to achieve a similar plot via another means. I also note that there are other similar posts, such as here;我没有发现这些对我的情况有用。
您的 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"