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, : RUNTIME ERROR: Compilation error on line 3. Cannot evaluate upper index of counter 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 に答える