【问题标题】:Model in rjags for sum to zero constraintsrjags 中的模型用于总和为零的约束
【发布时间】:2012-09-29 22:57:17
【问题描述】:

我正在尝试将 ANOVA 模型拟合到 rjags 中。模型是这样的

for (r in 1:nE){
  for ( j in 1:nP){
    for ( i in 1:nA){
      logit(p[i,j,r]) <- mu[r] + theta[i,r] + varphi[j,r] + psi[(nA-i)+j,r]
    }
  }
}

而且我需要适应

for (r in 1:nE){
  theta[nA,r] <- 0 - sum(theta[1:(nA-1), r])
  varphi[nP,r] <- 0 - sum(varphi[1:(nP-1), r])
  psi[nK,r] <- 0 - sum(psi[1:(nK-1), r])
}

这是此模型的零约束之和。但是,rjags 给了我信息

"Compilation error on line 14. Attempt to redefine node varphi[16,1]"

如果我删除约束部分,模型编译得很好,但不会收敛。在 BUGS 中,模型被接受。

如何在 rjags 中实现这些约束?

【问题讨论】:

    标签: r winbugs


    【解决方案1】:

    你有两个选择:

    1. 制作零和变量(不要重新定义旧变量)并改为监控它们。

    2. 重新参数化模型以使用角约束,而不是求和为零。

    1 是更好的选择,因为新变量可能会收敛得更快。见Ntzoufras' book, (ch.5),秒。 5.4.2 用于讨论以及相关的错误代码。这应该也适用于锯齿,虽然我没有检查过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 2010-10-13
      相关资源
      最近更新 更多