简单JAGS模型中的编译错误

时间:2015-10-08 00:22:44

标签: bayesian jags

我已经阅读了有关该主题的其他问题,但是这些问题的所有模型都比我的复杂得多,并没有帮助我找到答案(对JAGS来说很新)。

当我运行以下内容时:

x <- c(1,0,4,1,4,2,5,3,0,3,1,2,2,4,1)
Data <- as.list(x=x, nx=length(x))

model <- function() {
## Likelihood
for (i in 1:nx) {
x[i] ~ dpois(mu[i])
}
## Prior
mu[i] ~ dexp(1)
}
fit <- jags(Data, param=c("mu"), model=model, n.chains=1, n.iter=10000,   
n.burn=0, n.thin=1, DIC=FALSE) 

我收到错误: jags.model中的错误(model.file,data = data,inits = init.values,n.chains = n.chains ,:   运行时错误: 第3行的编译错误。 无法评估计数器i的上层指数

其他解决方案提到循环中的东西不应该在循环中,但我不认为我的循环有任何问题?我不确定。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您的问题是您的数据列表格式不正确。而不是使用as.list而只使用list()。此外,像jbaums提到的那样你需要在循环内移动mu [i]。试试这个:

x <- c(1,0,4,1,4,2,5,3,0,3,1,2,2,4,1)
Data <- list(x=x, nx=length(x))

model <- function() {
  ## Likelihood
  for (i in 1:nx) {
    x[i] ~ dpois(mu[i])
    ## Prior
    mu[i] ~ dexp(1)
  }

}
fit <- jags(Data, param=c("mu"), model=model, n.chains=1, n.iter=10000,   
            n.burn=0, n.thin=1, DIC=FALSE)