我试图使用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)但是,我得到了“预期的逗号”错误,OpenBUGS在psii ~.语句。我现在对我做错了什么感到不知所措。其他型号适合,所以我不认为这是一个更大的程序问题。
任何提示都将不胜感激。
谢谢!
发布于 2014-05-08 10:02:26
您要对psi和tausq进行两次定义,这是令人困惑的错误。一次作为值的向量(psi[i] ~和tausq[i] ~),一次作为单个值(psi ~和tausq ~)。你得给其中一个再贴上标签.可能是像psi.mean ~和tausq.mean ~,或者psi0 ~和tausq0 ~之类的东西的后期。
https://stackoverflow.com/questions/23480024
复制相似问题