Posteriors too wide but no obvious problems - fitting a latent normal-multinomial model

R code to simulate data and run Stan:

``````library(rstan)
rstan_options(auto_write = TRUE)
options(mc.cores = parallel::detectCores())

# Create data
set.seed(12)
n <- 1000
y <- rnorm(n, mean = 3.5, sd = 1.19)
c1k <- c(-Inf, 1.5, ci, k - 0.5, Inf)
ycat <- as.numeric(cut(y, c1k))

d.stan <- list(N=n, K=max(ycat), y=ycat)
a <- list(mu = 3.5, logs = log(1.19), c = c(2.11, 3.68))
initl <- list(a,a,a)

fit <- stan(file = "mufit.stan",
data = d.stan, iter = 2000, chains = 3, init = initl,
``````

Stan model:

``````data {
int<lower=0> N;               // # obs
int<lower=2> K;               // # scale levels
int<lower=1,upper=K> y[N];    // scale response
}
parameters {
ordered[K-3] c;               // cuts for latent normal
real mu;                      // latent normal parameters
real logs;
}
transformed parameters{
real s = exp(logs);
}
model {
vector[K] theta;             // prob vector for each level of response

mu ~ normal(0.5*(K+1), 3);
logs ~ normal(0, 1.2);

for (i in 1:(K-3)){
c[i] ~ normal(1.5 + i, 1);
}

for (n in 1:N) {
theta[1] = Phi(1.5);
theta[2] = Phi(c[1])-Phi(1.5);
theta[3] = Phi(c[2])-Phi(c[1]);
theta[4] = Phi(4.5)-Phi(c[2]);
theta[5] = 1-Phi(4.5);

y[n] ~ categorical(theta);
}
}
``````

I am trying to implement the model given in Analyzing Ordinal Data with Metric Models: What Could Possibly Go Wrong?.

Despite the fairly informative priors and initial values, the posteriors for `mu` and `s` are quite wide. The model doesn’t take long to run, finishes without any complaints, chains look ok, Rhat seems fine… no clue what the issue might be here.

`mu` and `logs` and `s` do not enter the likelihood in the Stan program you wrote

Shame on me. All in working order now.