如何在glmmTMB拟合的GLMM中对非整数数据使用二项分布族
glmmTMB二项混合模型过离散问题解决方案
首先明确:对revisits_per_bout和tot_visits_bout做平方根转换是错误操作,二项分布的输入要求为整数型的成功/失败计数,转换为非整数会直接违背模型分布假设,引入额外估计偏差,必须用原始整数计数建模。
glmmTMB虽然不支持quasibinomial族,但有两种原生支持的方案可以直接解决二项模型过离散问题,不需要做变量转换:
- 方案1:添加观测水平随机效应
二项混合模型的过离散大多来自未被解释的个体观测水平残差变异,你可以先为数据集每一行生成唯一的观测ID,再将该ID作为随机效应加入模型即可,这是广义线性混合模型处理过离散的标准方法。
参考代码:# 生成观测水平唯一ID table_training$obs_id <- seq_len(nrow(table_training)) revisitsm0_olre <- glmmTMB( cbind(revisits_per_bout, tot_visits_bout - revisits_per_bout) ~ experiment_type * foraging_bout + (1|colony/bee_id) + (1|obs_id), data = table_training, family = binomial ) - 方案2:改用β-二项分布族
glmmTMB原生支持betabinomial分布族,专门用于拟合存在过离散的二项比例数据,不需要调整固定效应、随机效应结构,也不需要对变量做任何转换,直接替换family参数即可,对过离散的拟合灵活度高于加观测水平随机效应的方案。
参考代码:revisitsm0_bbin <- glmmTMB( cbind(revisits_per_bout, tot_visits_bout - revisits_per_bout) ~ experiment_type * foraging_bout + (1|colony/bee_id), data = table_training, family = betabinomial )
拟二项分布本质是通过离散度参数修正参数标准误,不会改变系数点估计值,上述两种方案都是直接在模型结构层面建模过离散来源,估计结果更稳定,你可以通过AIC、残差检验对比两个调整后模型的拟合效果,选择适配数据的版本即可。
内容的提问来源于stack exchange,提问作者Saaa
相关产品推荐
相关产品推荐

