It's more efficient to write
gamma ~ normal(1,1);
and rely on the vectorization. Using multi_normal is relatively
inefficient.
And we really need to rewrite some of those models. Using exp(log_gamma)
is a bad idea. If you're going to make something positive, it's
cleaner to just declare the variable as:
vector<lower=0>[K] gamma;
Rather than having a log_gamma without a constraint and then exponentiating.
Then the lower-bound constraint takes care of the exponentiation in
the background for you.
Identifiability in theory is not the same as in practice. In practice,
it may take a lot of samples to read convergence if a parameter is
not well identified in the posterior. So cranking down one of the
parameters to normal(0,1) will identify the scale.
- Bob