OpenBUGS 错误messages:Expected 集合算子c

OpenBUGS error messages:Expected the collection operator c

我无法使用下面的代码。它是一个分层的单向方差分析模型,但是当我单击数据加载时,出现的错误消息预计是集合运算符 c。这意味着什么?谁能帮我处理下面的代码吗?我的数据集更大,但为了简化问题,我在这里只使用 season=4(组数)和 n=5(每组中的受试者数)。

model{
for(i in 1:n){
    Length[i] ~ dnorm(mu.l[i], tau[1]) 
    mu.l[i] <- alpha[j[i]]
}
for (p in 1:J){
    alpha[p]~dnorm(mu, tau[2])
}
mu~dnorm(0,0.0001)
for(k in 1:2){
    tau[k]<-pow(sigma[k],-2)
    sigma[k]~dunif( 0, 10)
}
}

#initials    
list( ort=1.0, alpha=c(NA, 0,0,0), tau=c(1 ,1))  

#Data
list(n=5, j=4)  
j[] length[]  
1   17.00
1   17.50
1   17.50
1   16.20
1   18.00
2   13.70
2   17.4
2   17.70
2   16.40
2   17.70
3   16.4
3   15.00
3   19.60
3   14.70
3   18.00
4   18.20
4   13.60
4   17.30
4   17.3
4   14.5  

您的代码中存在一些问题。

  1. 在您的模型中有 JLength。在您的数据中,您有 j(两次)和 length,即没有 LengthJ

  2. 在你的初始值中你有 ort 这不是模型中任何地方使用的参数和 tau 这不是随机的(也许你的意思是 sigma ?).

您上面的模型应该与以下模型一起工作(是否是您想要的模型由您决定):

#Initials
list( alpha=c(NA, 0,0,0))  

#Data
list(n=5, J=4, j=c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4), Length=c(17,17.5,17.5,16.2,18,13.7,17.4,17.7,16.4,17.7,16.4,15,19.6,14.7,18,18.2,13.6,17.3,17.3,14.5))