【问题标题】:Attempt to redefine node compilation error in JAGS尝试在 JAGS 中重新定义节点编译错误
【发布时间】:2020-12-01 16:54:29
【问题描述】:

我正在尝试从 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]。我不确定为什么会发生错误。任何帮助将不胜感激。

【问题讨论】:

    标签: r jags rjags


    【解决方案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];
      }
    }
    

    【讨论】:

    • 谢谢,是的,我正在寻找第二个答案。
    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多