有人可以为具有一个分类 X 变量(Dirichlet 先验)的贝叶斯多项逻辑模型提供 JAGS 代码吗?我的代表性示例是下面代码中的矩阵“z”,它代表 3 个结果,而代码底部的“站点”是分类 x 变量。
我可以获得估计这 3 个结果中的每一个结果的代码,但我对如何添加分类 X(医院站点)感到困惑。
我想使用第一个结果 z[, 1] 作为参考,使用“a”作为“站点”的参考。
这是估计结果的示例代码(没有分类 X)。这就是我到目前为止所拥有的。任何有关使用 X 扩展此模型的帮助将不胜感激。
library('rjags')
z <- matrix(c(rep(1,70), rep(0,30),
rep(0,70), rep(1,22), rep(0,8),
rep(0,92), rep(1,8)),
nrow=100, ncol=3)
## The model ##
modelString = "
model
{
for (j in 1:K)
{
alpha[j] <- 1
}
#Prior
pi ~ ddirch(alpha[1:K])
for (i in 1:N)
{
z[i, 1:K] ~ dmulti(pi, 1)
}
}
"
writeLines( modelString , con="TEMPmodel.txt" )
#Run jags
jags <- jags.model('TEMPmodel.txt',
data = list('z' = z,
'N' = nrow(z),
'K' = ncol(z)),
n.chains = 4,
n.adapt = 1000)
mcmc.samples <- coda.samples(jags,
c('pi'),
2500)
#Estimates are similar to observed data
summary(mcmc.samples)
#5 category predictor hospital site to add to model
set.seed(1)
site <- sample(rep(letters[1:5], 20), 100)