为零膨胀泊松模型添加双向固定效应的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
相关产品推荐
相关产品推荐

