You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为零膨胀泊松模型添加双向固定效应的glmmTMB代码咨询

解决glmmTMB中添加双向固定效应的问题

问题背景

我正在使用glmmTMB拟合零膨胀泊松模型,研究2000-2015年德克萨斯州各郡县(county)的入室盗窃案件数量,核心关注变量为男性失业率。基准模型代码如下:

z1 <- glmmTMB(burglaries ~ male.unemployment + growth + gun.ownership + temperature 
+ offset(log(county.pop)), data = texas.data, 
family = poisson, ziformula=~1)

该模型运行正常,但我想为其添加年份(year)和郡县(county)的双向固定效应。我尝试的代码如下:

z1 <- glmmTMB(burglaries ~ male.unemployment + growth + gun.ownership + temperature 
+ offset(log(county.pop)) + (1|county+year), data = texas.data,
 family = poisson, ziformula=~1)

但这段代码添加的是随机效应,请问正确的代码写法是什么?


正确解法

要添加双向固定效应,无需使用随机效应的(1|...)语法,直接将county和year作为分类变量纳入主模型公式即可。如果数据中这两个变量还不是因子类型,先转换为因子确保模型识别为分类变量:

代码实现

# 可选:转换变量为因子(若原始数据是数值型)
texas.data$county <- as.factor(texas.data$county)
texas.data$year <- as.factor(texas.data$year)

# 拟合带双向固定效应的零膨胀泊松模型
z1 <- glmmTMB(
  burglaries ~ male.unemployment + growth + gun.ownership + temperature 
  + offset(log(county.pop)) + county + year,
  data = texas.data,
  family = poisson,
  ziformula = ~1
)

关键说明

  • (1|county+year)是随机效应语法,用于建模组间的随机变异;而固定效应是直接将每个郡县、每个年份的类别作为自变量,估计对应的固定系数。
  • county + year即为双向固定效应,模型会为每个郡县和每个年份分别生成一个固定效应参数。
  • 若需要在零膨胀部分也加入固定效应,可修改ziformula,比如ziformula=~county + year;如果仅计数部分需要,保持ziformula=~1即可。

内容的提问来源于stack exchange,提问作者YouLocalRUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:47:06