如何在R中使用glmmTMB拟合仅含随机效应的模型?
用glmmTMB拟合仅含随机效应的模型
要去掉默认的全局截距,你只需要在模型公式的固定效应部分显式指定0或者-1,写法如下:
# 两种写法等价,都能移除全局截距 obj <- glmmTMB(Y ~ 0 + (1+x1+x2|group), data = your_data) # 或者 obj <- glmmTMB(Y ~ -1 + (1+x1+x2|group), data = your_data)
为什么原写法会出现全局截距?
glmmTMB(以及R中多数线性/混合模型工具)的公式默认会隐含全局截距项(相当于自动加上1),所以你最初写的Y ~ (1+x1+x2|group),实际等价于Y ~ 1 + (1+x1+x2|group),这就是结果里出现全局截距的原因。
验证模型是否符合需求
拟合完成后可以通过以下方式确认:
- 调用
fixef(obj)查看固定效应,此时应该返回空结果(因为没有设置任何固定效应项) - 调用
ranef(obj),能看到每个分组对应的随机截距、x1斜率、x2斜率估计值
针对你的分组面板数据需求
这种模型确实能实现每个分组拥有独立的截距和变量系数,本质是让每个组的参数从共同的多元正态分布中抽样。如果完全不需要参数收缩(即完全独立拟合每个组),也可以考虑用lmList(Y ~ 1 + x1 + x2 | group, data = your_data)(来自lme4包),但glmmTMB的优势是支持更复杂的响应分布(比如计数、非正态连续型数据),同时能灵活调整随机效应结构。
内容的提问来源于stack exchange,提问作者Lindsay
相关产品推荐
相关产品推荐

