尝试重新定义 JAGS 中的节点编译错误

Attempt to redefine node compilation error in JAGS

我正在尝试 运行 来自 R 的以下 JAGS 代码。我只是展示发生错误的部分代码。

for(mmm in 1 : p){ 
                 for(jj in 1 : K){
                  vv[jj] ~ dbeta(1,1);
                 }
        pp[1] <- vv[1];
                 for (jjj in 2 : K){
                          pp[jjj] <- vv[jjj] * (1 - vv[jjj-1]) * pp[jjj-1]/vv[jjj-1];
                 }
    }

第 3 行的错误是 Attempt to redefine node vv[1]。我不确定为什么会出现错误。任何帮助将不胜感激。

您的 1:K 循环嵌套在 1:p 循环中。因此,当 mmm1 变为 2 时,您将覆盖 vv 中的值。在不了解更多关于模型的情况下,有两种可能的解决方案。

  1. 从嵌套的 for 循环中删除这些。
  2. 通过 mmm1:p 循环中的值进行索引。

假设第二个答案是您需要的,它看起来像这样:

for(mmm in 1 : p){ 
  for(jj in 1 : K){
    vv[mmm, jj] ~ dbeta(1,1);
  }
  pp[mmm,1] <- vv[mmm,1];
  for (jjj in 2 : K){
    pp[mmm,jjj] <- vv[mmm,jjj] * 
    (1 - vv[mmm,jjj-1]) * pp[mmm,jjj-1]/vv[mmm,jjj-1];
  }
}