2

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で実装するにはどうすればよいですか?

4

1 に答える 1

3

次の 2 つのオプションがあります。

  1. 新しいゼロサム変数を作成し (古いものを再定義しないでください)、代わりにそれらを監視します。

  2. 合計をゼロにするのではなく、コーナー制約を使用するようにモデルを再パラメーター化します。

新しい変数はおそらくより速く収束するため、1 の方が適切なオプションです。Ntzoufras の本、(ch.5)、秒を参照してください。議論のための5.4.2と関連するバグコード。私はチェックしていませんが、これはギザギザでも機能するはずです。

于 2012-09-30T14:40:58.610 に答える