0

我已经阅读了有关该主题的其他问题,但是关于这些问题的所有模型都比我的复杂得多,并且无法帮助我找到答案(对 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 的上索引

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

4

1 回答 1

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) 
于 2015-10-08T18:54:53.550 回答