尝试重新定义 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
循环中。因此,当 mmm
从 1
变为 2
时,您将覆盖 vv
中的值。在不了解更多关于模型的情况下,有两种可能的解决方案。
- 从嵌套的 for 循环中删除这些。
- 通过
mmm
对 1: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];
}
}
我正在尝试 运行 来自 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
循环中。因此,当 mmm
从 1
变为 2
时,您将覆盖 vv
中的值。在不了解更多关于模型的情况下,有两种可能的解决方案。
- 从嵌套的 for 循环中删除这些。
- 通过
mmm
对1: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];
}
}