Looking for a way to specify a truncated lognormal prior to improve performance

Your parameters that have lognormal priors need <lower = 0> bounds, as well as any additional truncation you wish to specify. See here.

The MCMC sampler does not draw from the prior distribution. Additionally, I don’t see how the traceplots that follow demonstrate the latter point?

parameters {
  real <lower = 2.2> alpha_8_4;
}

already constraints alpha_8_4 to be greater than 2.2.

parameters {
  real <lower = 0, upper = 2.2> alpha_8_1;
}

model {
  alpha_8_1 ~ lognormal(mu_alpha, sigma_alpha);
}

The declared bounds will constrain alpha_8_1 to be between [0, 2.2]. Placing the lognormal distribution on alpha_8_1 just changes the shape of the prior from uniform between [0, 2.2] to having truncated lognormal between [0, 2.2].

You shouldn’t need to do this once you change the parameter declarations to have appropriate bounds.

Higher level thoughts: relabeling quickly becomes infeasible, you need to reparametrize / break the symmetry in the model in order to ensure accurate estimation. Also I’m not sure what you mean by rotational invariance?

1 Like