我很难在我的 OpenBUGS 模型中减去两个向量。下面代码的最后一行不断给出错误“预期的右括号错误”:
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”。