“无法解析以下参数:”潜在类模型的jags错误

时间:2016-07-21 10:28:05

标签: r bayesian jags

我希望在JAGS中使用贝叶斯潜类模型,但我遇到了一个问题,我正在寻求帮助来解决。

我试图拟合的模型如下所述(模型详情可在https://www.jstatsoft.org/article/view/v061i13/v61i13.pdf找到)。 (我知道我可以使用这个软件包,但是,我正试图在JAGS中手动编写代码,因为我要添加与BayesLCA不兼容的额外模型复杂性。)

我的JAGS尝试此模型如下。 $ n $,$ ng $,$ nm $分别表示观察数量,潜在群体数量和调查回复数量。看起来我在这段代码中有一个有向循环(x-> pi_norm-> group-> x),但我无法弄清楚如何避免这种情况。

数据和R脚本:

x = matrix(0, nrow = 40, ncol = 4)
x[1:10,1] <- 1
x[11:20,2] <- 1
x[21:30,3] <- 1
x[31:40,4] <- 1
ng = 4
nm = dim(x)[2]
n  = dim(x)[1]

jags.data = list("x" = x, "n" = n, "ng" = ng, "nm" = nm)
jags <- jags.model("model1.bug", 
               data     = jags.data,
               n.chains = 1,                                
               n.adapt  = 1000)
samples <- coda.samples(model          = jags, 
               variable.names = c("pi_norm", "theta"), 
               n.iter         = 2000, 
               thin           = 1)

Jags模特:

model{ 
# prior specification
tau[1:ng] ~ ddirch(rep(1,ng))
for (g in 1:ng) {
    for (m in 1:nm) {
      theta[g, m] ~ dunif(0,1)  
    }
  }
#likelihood specification
for (i in 1:n) {
  for (g in 1:ng){
    p[i, g, 1:nm] <- (theta[g, 1:nm]^x[i, 1:nm])*(1-theta[g, 1:nm])^(1-x[i, 1:nm])  # p(X_im|theta_gm)
    pi[i, g] <- prod(p[i, g, ]*tau[])   # p(X_i|theta_g)
    pi_norm[i, g] <- pi[i, g]/sum(pi[i, ])  # normalise
  }

  group[i] ~ dcat(pi_norm[i, 1:ng])  # equivalent to multinomial
  for (m in 1:nm) {
     x[i, m] ~ dbern(theta[group[i], m])  
  }
 }
}

我获得的错误如下。

Error in jags.model("model1.bug", data = jags.data, n.chains = 1, n.adapt = 1000) : 
RUNTIME ERROR:
Unable to resolve the following parameters:
pi[1,1:4] (line 20)
pi[2,1:4] (line 20)
...
pi[40,1:4] (line 20)
pi_norm[1,1:4] (line 23)
pi_norm[2,1:4] (line 23)
pi_norm[3,1:4] (line 23)
pi_norm[4,1:4] (line 23)

任何帮助都会非常感激。

0 个答案:

没有答案
相关问题