简单 JAGS 模型中的编译错误
Compilation Error in simple JAGS model
我已经阅读了关于该主题的其他问题,但这些问题的所有模型都比我的复杂得多,并且无法帮助我找到答案(对 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
的上索引
其他解决方案提到了不应该在循环中的东西在循环中,但我认为我的循环没有任何问题?我不确定。谢谢!
我认为您的问题是数据列表的格式不正确。与其使用 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)
我已经阅读了关于该主题的其他问题,但这些问题的所有模型都比我的复杂得多,并且无法帮助我找到答案(对 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
的上索引其他解决方案提到了不应该在循环中的东西在循环中,但我认为我的循环没有任何问题?我不确定。谢谢!
我认为您的问题是数据列表的格式不正确。与其使用 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)