2014-05-05 54 views
3

我想,以適應使用OpenBUGS分層模型,用下面的代碼: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亮點在psi [i]〜...聲明中的tausg。我目前對我做錯的事情感到不知所措。其他模型很好,所以我不認爲這是一個更大的程序問題。

任何提示,將不勝感激

謝謝!

回答

2

您正在定義psitausq兩次,這是令人困惑的BUGS。一次作爲值的向量(psi[i] ~tausq[i] ~)並且一次作爲單個值(psi ~tausq ~)。你需要重新標記一個或另一個,......可能是後者到psi.mean ~tausq.mean ~psi0 ~tausq0 ~之類的東西。