glmmTMB负二项模型拟合及协方差结构语法相关问题咨询
glmmTMB使用问题解答
问题1:随机效应语法规则及差异说明
+0的含义
在glmmTMB和lme4体系的随机效应语法中,+0的作用是取消默认添加的随机截距项。针对ar1(times+0|group)的场景,ar1协方差结构要求每个组下的随机效应向量严格对应times变量的每个有序水平,去掉截距后生成的Z矩阵刚好为每个时间点生成一个独立的指示列,完全匹配ar1结构的输入要求。
不同写法的核心差异
(1|group):仅为每个分组添加随机截距,组内所有观测共享同一个随机偏移,无随times变化的随机效应,默认协方差结构为标量方差。(times|group):默认等价于(times+1|group),会同时估计随机截距和times对应的随机斜率(若times为分类因子则是每个水平的随机效应),且默认估计截距和斜率/不同水平效应之间的协方差,协方差结构为无结构正定矩阵。ar1(times+0|group):要求times为等间隔的有序分类因子,去掉随机截距后每个时间水平对应一个随机效应,组内这些随机效应服从一阶自回归协方差结构,相邻时间点效应相关性最高,间隔越远相关性越低,专门用于拟合组内序列的自相关特征。
协方差结构汇总资料
你可以直接在R控制台运行vignette("covstruct", package = "glmmTMB"),查看本地安装的glmmTMB官方协方差结构文档,里面包含所有支持的协方差结构的语法、适用场景和可运行示例。
注意:使用自定义协方差结构前需确认变量类型、分组内观测顺序符合对应结构的要求,否则会得到错误的估计结果。
问题2:负二项混合模型代码正确性判断
你的代码是否正确取决于你生成数据时的设定:
- 若你代码中的
e_ij是笔误,生成数据时均值实际为$\mu_{ij}=x_{ij}\beta + b_i$,没有额外添加观测层面的正态残差,那么你的拟合代码完全正确:y~x指定固定效应,(1|group)对应分组随机效应$b_i$,family=nbinom2的参数化和rnbinom完全匹配,估计出的size参数对应你生成数据时设置的size=1。 - 若你确实在生成数据时额外添加了观测层面的正态残差$e_{ij} \sim N(0,1)$,那么现有代码缺少了观测层面的随机效应项,需要补充每行独有的ID变量
obs = 1:nrow(dat),将拟合代码修改为:
glmmTMB(y~x+(1|group)+(1|obs),data=dat,family=nbinom2)
其中(1|obs)用来捕捉你额外添加的观测层面随机效应的方差。
内容的提问来源于stack exchange,提问作者user2829551
相关产品推荐
相关产品推荐

