我第一次尝试使用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)}
答案 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)))