'rjags with error "Index out of range taking subset of"

When I use rjags to build my model, I got an error:

"Error in jags.model(textConnection(model_string), data = data_jags, n.chains = 3) : RUNTIME ERROR: Compilation error on line 6. Index out of range taking subset of Course".

Here is my code

model_string <- "model {
  # dur <- Time[1]
  state[1] ~ dcat(pi[])
  for (i in 1:N-1) {
    Speed[i] ~ dnorm(mu_speed[state[i]], prec_speed[state[i]])
    Course[i] ~ dnorm(mu_course[state[i]], prec_course[state[i]])
    Rota[1,1] <- cos(Course[i])
    Rota[1,2] <- -sin(Course[i])
    Rota[2,1] <- sin(Course[i])
    Rota[2,2] <- cos(Course[i])
    Rota_before <- Position[i,1:2] / sqrt(sum(Position[i,1:2]^2))
    Distance <- a[state[i]] * Speed[i] * Rota_before %*% Rota * Time[i]
    Position[i+1,1:2] ~ dmnorm(Position[i,1:2] + Distance, sigma_position)
    
    #q <- 1 - qnorm(dur+Time[i+1], mu_time[state[i]], prec_time[state[i]])
    #p <- c(q,q,q)
    #p[state[i]] <- 1 - q
    #p <- A[state[i],1:3] * p / sum(A[state[i],1:3] * p)
    state[i+1] ~ dcat(A[state[i],1:3])
    
    # dur <- ifelse(state[i]==state[i+1], dur+Time[i+1], Time[i+1])
  }
  

  
  Speed[N] ~ dnorm(mu_speed[state[N]], prec_speed[state[N]])
  Course[N] ~ dnorm(mu_course[state[N]], prec_course[state[N]])
  
  
  pi ~ ddirich(c(1,1,1))
  mu_speed[1] ~ dnorm(2, 1.0/100.0) T(0,)
  mu_speed[2] ~ dnorm(30, 1.0/100.0) T(mu_speed[1],)
  mu_speed[3] ~ dnorm(50, 1.0/100.0) T(mu_speed[2],)
  R[1,1] = 1
  R[1,2] = 0
  R[2,1] = 0
  R[2,2] = 1
  sigma_position ~ dwish(R,3)
  
  for (j in 1:3) {
    prec_speed[j] ~ dgamma(1.0/2.0, 1.0*1.0/2.0)
    mu_course[j] ~ dunif(0,2*pi)
    prec_course[j] ~ dgamma(1.0/2.0, 1.0*1.0/2.0)
    a[j] ~ dunif(1e-6, 1e-5)
    mu_time[j] ~ dnorm(100, 1000)
    prec_time[j] ~ dgamma(1.0/2.0, 1.0*1.0/2.0)
    A[j,1:3] ~ ddirich(c(50, 50, 50))
  }
}"

Variable Speed and Course has the same length, I can figure out why variable Course is out of index.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source