1

我正在尝试使用 rjags 制作贝叶斯混合模型。这是为 19 个实验室进行的实验绘制剂量反应关系的尝试。因此,我制作的模型对所有实验室都有截距。我想使用混合建模对实验室效果进行聚类,但我的代码不起作用。这是我的模型的副本,后面跟着错误:-

mod_string2 <- "
model{
# Likelihood
  for(i in 1:n){
    Y[i]   ~ dnorm(mu[i],inv.var)
    mu[i] <- a[lab[i]] + b[1]*ld1[i] + b[2]*ld2[i] + b[3]*sqld1[i] + b[4]*sqld2[i] + b[5]*lbody[i] + b[6]*B[i]*ld1[i] + b[7]*C[i]*ld1[i] + b[8]*D[i]*ld1[i] + b[9]*B[i]*ld2[i] + b[10]*C[i]*ld2[i] + b[11]*D[i]*ld2[i]
    a[lab[i]] ~ dnorm(muOfClust[clust[lab[i]]], tau)
    clust[i] ~ dcat( pClust[1:Nclust] )
  }

  # Prior for labs (intercepts)

  for (clustIdx in 1: Nclust) {
    muOfClust[clustIdx] ~ dnorm( 0 , 1/100000 )
  }

  pClust[1:Nclust] ~ ddirch(onesRepNclust) # so (pi1,pi2) follow Dir(1,1) which implies pi1 follows Beta(1,1)

  tau ~ dgamma(0.01 , 0.01)

  # Prior for beta
  for(j in 1:11){
    b[j] ~ dnorm(0,0.0001)
  }

  # Prior for the inverse variance
  inv.var ~ dgamma(0.01, 0.01)
  sigma <- 1/sqrt(inv.var)
}
"

我的错误是:-

jags.model(textConnection(mod_string2), data = d2) 中的错误:运行时错误:第 7 行的编译错误。尝试重新定义节点 a[3]

我究竟做错了什么?

4

0 回答 0