【发布时间】:2013-08-08 02:00:19
【问题描述】:
所以我认为下面的代码可以在 OpenBUGS 中工作,但它给了我一个“节点 Z 的多个定义”错误。
model
{
Z <- round(X)
X ~ dnorm(0,1)T(-2,2)
}
list(Z=0)
即使我将Z <- round(X) 替换为Z <- X,我仍然会遇到同样的错误。从这个事实我们可以推断出错误是由于对可观察变量使用逻辑赋值导致的,特别是错误不是由于round()操作造成的。
为什么 BUGS 不允许这样做?另外,在这种情况下有什么好的解决方法?这是我想要实现的更通用的版本,它本质上是对带有墙壁的离散高斯进行建模(截断):
model
{
for(i in 1:N){
Z[i] <- round(X[i])
X[i] ~ dnorm(mu,1)T(-2,2)
}
mu ~ dunif(-2,2)
}
基本上,我希望Z 与带有“墙”(截断)的离散高斯分布分布,我想根据Z 上的数据估计mu。我想我可以尝试将Z 设为分类变量并估计参数,但这在理论上似乎很痛苦。我可以使用一些 BUGS 技巧来获得我想要的模型吗?
【问题讨论】:
标签: syntax-error probability winbugs