次のステートメントがあるとします。
for (i in 1:N) {
pi[i,1] <- ....
pi[i,2] <- ....
pi[i,3] <- ....
...
pi[i,100] <- ...
Y[i] ~ dcat(p[i,])
}
としましょうY[1] = 5
。ジャグはすべてのpi[1,1:100]
ノードを評価しますか、それとも必要なノードのみを評価しpi[1,5]
ますか?
私の経験から、JAGS はすべての親ノードを非効率的に評価しているようです。これは、dcat を取り除いた後、私のモデルが 3 倍高速化されたためです。のさまざまな結果のために、複数の for ループを使用する必要がありましたY[i]
。
dcat
ここで、JAGS では が実際には必要なくsum(pi[]) = 1
、合計が 1 にdcat
なるように正規化されることに気付きました。これは、すべてのノードを評価する必要があることを意味します。pi[]
これはとても悲しいことです。必要な唯一の親ノードのみを評価するスマートな同等物はありますか? dcat
WinBUGS と Stan はどうですか?