我正在尝试使用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)
但是,我得到错误&#39;期望逗号&#39;和OpenBUGS突出显示psi [i]〜...语句中的tausg。我现在因为我做错了而感到茫然。其他型号很合适,所以我不认为这是一个更大的程序问题。
任何提示都将非常感谢
谢谢!
答案 0 :(得分:2)
您要定义psi
和tausq
两次,这会让BUGS感到困惑。一次作为值的向量(psi[i] ~
和tausq[i] ~
),一次作为单个值(psi ~
和tausq ~
)。你需要重新标记一个或另一个,...可能是后来的psi.mean ~
和tausq.mean ~
或psi0 ~
和tausq0 ~
。