我正在尝试使用 jags 和 rjags 包来拟合分层模型。我的结果变量是 y,它是一系列伯努利试验。我有 38 个人类受试者,它们在两个类别下表演:P 和 M。根据我的分析,每个演讲者都有可能在类别 P 中成功和类别 M 的成功概率. 我还假设 P 和 M 有一些社区级别的超参数:和.
因此,对于每个演讲者: 和在哪里和控制分布的峰值程度和.
还,.
这是我的锯齿模型:
model{
## y = N bernoulli trials
## Each speaker has a theta value for each category
for(i in 1:length(y)){
y[i] ~ dbern( theta[ speaker[i],category[i]])
}
## Category P has theta Ptheta
## Category M has theta Ptheta * Mtheta
## No observed data for pure Mtheta
##
## Kp and Km represent how similar speakers are to each other
## for Ptheta and Mtheta
for(j in 1:max(speaker)){
theta[j,1] ~ dbeta(Pmu*Kp, (1-Pmu)*Kp)
catM[j] ~ dbeta(Mmu*Km, (1-Mmu)*Km)
theta[j,2] <- theta[j,1] * catM[j]
}
## Priors for Pmu and Mmu
Pmu ~ dbeta(Ap,Bp)
Mmu ~ dbeta(Am,Bm)
## Priors for Kp and Km
Kp ~ dgamma(1,1/50)
Km ~ dgamma(1,1/50)
## Hyperpriors for Pmu and Mmu
Ap ~ dgamma(1,1/50)
Bp ~ dgamma(1,1/50)
Am ~ dgamma(1,1/50)
Bm ~ dgamma(1,1/50)
}
我遇到的问题是,当我以 5000 次迭代运行此模型以进行适应时,然后取 1000 个样本,Mmu
并Km
收敛到单个值。我一直在用 4 个链运行它,每个链没有相同的值,但在每个链中只有一个值。
我对使用 MCMC 方法拟合分层模型非常陌生,所以我想知道这有多糟糕。我是否应该将此视为该模型无法适应的迹象,表明我的先验有问题,或者这是课程的标准?
编辑:如果重要的话,价值它收敛到(跨链平均)为 0.91 和为 1.78