1

我无法让下面的代码工作。它是一个分层的单向方差分析模型,但是当我单击数据加载时,出现的错误消息应该是集合运算符 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  
4

1 回答 1

2

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

  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))
于 2015-02-04T09:48:04.913 回答