我已经阅读了有关该主题的其他问题,但是这些问题的所有模型都比我的复杂得多,并没有帮助我找到答案(对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的上层指数
其他解决方案提到循环中的东西不应该在循环中,但我不认为我的循环有任何问题?我不确定。谢谢!
答案 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)