首页 > 解决方案 > 具有分类 X 的 JAGS 中的 Dirichlet 多项式模型

问题描述

有人可以为具有一个分类 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)

标签: rbayesianmultinomialdirichletrjags

解决方案


推荐阅读