mblogit混合效应多项模型调用car包Anova函数报错求解
错误原因与解决方案
错误原因
car包的Anova()函数并未适配mclogit包生成的mblogit模型对象。该函数内部默认按照线性/广义线性模型的结构提取残差平方和等统计量,但mblogit作为多分类混合效应模型,其模型结构与Anova()的预期不匹配,导致提取关键统计量失败,触发你看到的赋值长度为0的错误。
替代方案
方案1:使用mclogit包自带的检验函数
mclogit包提供了专门适配自身模型的显著性检验函数,无需依赖外部包:
- Wald检验:直接检验指定效应的显著性
wald_test(model_mult, terms = ~ Group*Sex + Period)
- 似然比检验:通过对比全模型与零模型的差异来检验效应,需要先拟合零模型
model_null <- mblogit(Age_class ~ 1, random = ~1|Hunting_season, data = modeldata) lr_test(model_null, model_mult)
方案2:改用支持car::Anova()的模型包
如果偏好Anova()的输出格式,可以换用glmmTMB包构建多分类混合模型,它的模型对象完全兼容car::Anova():
library(glmmTMB) library(car) # 构建多分类混合模型 model_glmm <- glmmTMB( formula = Age_class ~ Group*Sex + Period + (1|Hunting_season), family = multinomial(link = "logit"), data = modeldata ) # 生成偏差分析表 Anova(model_glmm)
内容的提问来源于stack exchange,提问作者S_vdp
相关产品推荐
相关产品推荐

