4

我正在尝试使用 OpenBUGS 拟合分层模型,代码如下:

model 
{   
for( i in 1:n){
    tausq[i] <- 1/pow(sigma[i], 2)
    psi[i] ~ dnorm(psi, tausq)
    psihat[i] ~ dnorm(psi[i], tausq[i])
}   
psi  ~ dnorm(0, 1000)
tausq ~ dgamma(0.001, 0.001)
sigmasq <- 1/tausq
}

#data

list(n = 12,
psihat = c(1.055, -0.097, 0.626, 0.017, 1.068, -0.025, -0.117, -0.381, 0.507, 0.00,     3.85, 4.05),
sigma = c(0.373, 0.116, 0.229, 0.117, 0.471, 0.120, 0.220, 0.239, 0.186, 0.328, 0.206, 0.254)) 

# initial values

list(psi = 1.5, sigmsq=.1)

但是,我得到了错误'expected a comma',OpenBUGS 在 psi[i] ~... 语句中突出显示了 tausg。我目前对自己做错了什么感到茫然。其他模型很合适,所以我不认为这是一个更大的程序问题。

任何提示将不胜感激

谢谢!

4

1 回答 1

3

您正在定义psitausq两次令人困惑的错误。一次作为值向量(psi[i] ~tausq[i] ~),一次作为单个值(psi ~tausq ~)。您需要将其中一个或另一个重新标记,...可能是后者,例如psi.mean ~andtausq.mean ~psi0 ~and tausq0 ~

于 2014-05-08T10:02:26.697 回答