Here’s how to properly construct an ordered vector with fixed upper and lower bounds
parameters {
...
simplex[K-2] c_;
}
transformed parameters {
ordered[K-1] c; // thresholds
c[1] = c_lower;
for (i in 2:(K-1)) {
c[i] = c[i-1] + c_[i-1]*(c_upper-c_lower);
}
...
}
Second, that uniform prior on sigma
is going to cause problems. I’d say try normal(0, K)
instead (it is automatically truncated to positive only).
And finally, don’t compute theta
manually. Stan has a builtin ordered probit distribution.