来自rjags的语法错误

时间:2016-05-11 15:36:18

标签: r jags

我第一次尝试使用rjags进行分层模型;它在纸面上看起来很简单,但是我在解析模型文件时遇到了错误:错误:第5行附近的语法错误" [" "我完全无法解释。

你能帮助我并告诉我我做错了吗?

data = list('P.hat'=c(0.0032, 0.0045, 0.077), 'R'=c(34580, 37932, 46724), 'N'=c(10028321, 15674923, 21426662), 's.over.rootn'=c(0.02, 0.006, 0.017), 'n'=1, 'tmax'=3)

cat('model{
## likelihoods ##
for(i in 1:n){
    for(j in 1:tmax){
        P.hat[i,j]  ~  dnorm(pi[j], (1/pow(s.over.rootn,2))[j])   
        R[i,j]      ~  dbin(theta[j], N[j])
}}
## daterministic relations ##
        gam         <- m*vs+(1-m)*va
for(j in 1:tmax){   
        theta[j]    <- (pi[j]*beta*gam)/(gam*dt+(1-gam)*du)
}
## priors ##
for(j in 1:tmax){
        pi[j]       ~  dbeta(1, 1)
}
        beta        ~  dbeta(1, 1)
        m           ~  dbeta(1, 1)                   
        vs          ~  dbeta(1, 1)                   
        va          ~  dbeta(1, 1)                   
        dt          ~  dnorm(0.3, 2)I(0,5) 
        du          ~  dnorm(1.25, 2)I(0,5)
}',
        file='model1.bug')

## data & initial values
inits1 <- list('pi'=rep(0.5,data$tmax),'beta'=0.5,   'm'=0.5,'vs'=0.5,'va'=0.5,'dt'=1,'du'=1)
jags_mod <- jags.model('model1.bug', data=data, inits=inits1, n.chains=1, n.adapt=5000)}

1 个答案:

答案 0 :(得分:0)

您的第五行代码是:

 P.hat[i,j]  ~  dnorm(pi[j], (1/pow(s.over.rootn,2))[j])   

我认为需要将其更改为正确索引s.over.rootn

 P.hat[i,j]  ~  dnorm(pi[j], (1/pow(s.over.rootn[j],2)))