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

如何在贝叶斯计数模型中引入随机效应?(JAGS实现求助)

JAGS重复测量计数数据的随机效应模型实现

针对同一个体多组计数数据的情况,需要在原beta-binomial模型基础上引入个体水平随机效应,捕捉个体间的变异以及同个个体内各组数据的相关性。以下是修改后的模型代码及关键说明:

修改后的JAGS模型代码

# File name "count model with random effects.jags"

model {
    # 超先验设定
    mu ~ dnorm(0, 0.001)          # 总体logit(p)的均值
    tau_u ~ dgamma(0.01, 0.01)    # 个体随机效应的精度参数
    sigma_u <- 1 / sqrt(tau_u)    # 转换为标准差,便于结果解读
    
    # 个体水平随机效应:每个个体的偏移量
    for (j in 1:nIndivs) {
        u[j] ~ dnorm(0, tau_u)
    }
    
    # 似然与组水平建模
    for (i in 1:nGroups) {
        obs[i] ~ dbin(p[i], n[i])
        # 通过logit链接整合固定效应与个体随机效应
        logit(p[i]) <- mu + u[id[i]]
        
        # 若需保留原beta分布的灵活性(额外组内变异),可替换为以下代码:
        # p[i] ~ dbeta(a[i], b[i])
        # logit(a[i]/(a[i]+b[i])) <- mu + u[id[i]]  # 均值由固定+随机效应决定
        # a[i] + b[i] ~ dgamma(1, 0.01)             # 控制beta分布的集中度
    }
}

关键改动说明

  1. 新增数据变量:需要在输入数据中添加nIndivs(个体总数)和id(长度为nGroups的向量,标记每组所属的个体ID)。
  2. 个体随机效应:引入u[j]表示第j个个体的随机截距,服从均值为0的正态分布,通过tau_u控制个体间变异程度。
  3. logit链接整合:将概率p[i]转换到logit尺度后,结合总体均值mu与个体随机效应,确保随机效应的建模符合正态分布的假设,同时避免概率落在0-1边界外的问题。
  4. 可选beta分布扩展:如果需要保留原模型中beta分布对组内额外变异的捕捉能力,可以使用注释中的代码,将beta分布的均值与个体随机效应绑定,同时用gamma超先验控制分布的集中度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:42:35