OpenBUGS モデルで 2 つのベクトルを差し引くのに非常に苦労しています。以下のコードの最後の行は、「予想される右括弧エラー」というエラーを出し続けます。
model {
for ( i in 1:N) {
for(j in 1:q) {
vv[i,j] ~ dnorm(vz[i,j],tau.eta[j])
}
vz[i,1:q] ~ dmnorm(media.z[i,], K.delta[,])
for(j in 1:q) {
mean.z[i,j] <- inprod(K[i,] , vbeta[j,])
}
K[i,1] <- 1.0
for(j in 1:N) {
K[i,j+1] <- sum(ve[,i] - ve[,j])
}
}
その行を に変更するとK[i,j+1] <- sum(ve[,i]) - sum(ve[,j])
、モデルは正常に機能しますが、それは私がやりたいことではありません。要素ごとに減算したいと思います。
SO で OpenBUGS を検索しましたが、無関係なトピックがいくつかあります。
Stats Stack Exchange には、近いこの投稿がありますが、モデルにこれを実装する方法をまだ作成できませんでした:
https://stats.stackexchange.com/questions/20653/vector-multiplication-in-bugs-and-jags/20739#20739
for ループを書かなければならないことは理解していますが、これは確かに頭の痛い問題です。:)
その行を次のように変更してみました:
for(k in 1:p) { temp [k] <- ve[k,i] - ve[k,j] }
K[i,j+1] <- sum(temp[])
ここで、「p」は各「ve」の行数です。現在、「ノード temp[1] の複数の定義」というエラーが発生し続けています。
私は間違いなくいくつかの助けを使うことができました。それは非常に高く評価されます。
よろしくお願いします。
PS: この質問に「OpenBUGS」というタグを追加したかったのですが、残念ながらそれは新しいタグであり、十分な評判がないためできませんでした。代わりに「winbugs」を追加しました。