'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 |
|---|
