Non-centered parameterization with mixture prior

Hi everyone,

I use a mixture prior in a model which results in “BFMI low” warnings for some simulated data. Although the estimates don’t seem to be biased, of course I still want to get rid of these warnings.

I think the problem is due to Student t Distribution I use because I don’t get such warnings with a normal distribution (but the estimates are worse/n_eff is really low). The prior I use is the following:

parameters {
...
  matrix[S,M] delta; 
  real <lower=0, upper=1> theta [S];
...
}
model {
...
for(s in 1:S) {
  for(m in 1:M) {
  theta[s] ~ beta(4, 4);
  target += log_mix(theta[s], normal_lpdf(delta[s,m] | 0, 0.01), student_t_lpdf(delta[s,m] | 4, 0, 0.25));
  }}
...
}

I know how to non-center the normal distribution and Student t distribution but have no idea how to do this for the mixture case. So how can I set up the prior in terms of

\delta = z_{\delta} \sigma_{\delta} and \delta = \alpha_{\delta}\tau^{-0.5}_{\delta}

considering the mixture?

Thanks for your help! :)

That doesn’t look right. Surely it should be

for(s in 1:S) {
 theta[s] ~ beta(4, 4);
 for(m in 1:M) {

I’m not sure how to noncenter a mixture. Maybe you could have separate delta_n ~ normal() and delta_t ~ student_t() and then whatever depends on delta could be modeled as a mixture.

2 Likes

Thanks! I changed this, although my code didn’t result in any errors :) I am not sure if non-centering the mixture works this way for our case because some of our coefficients come either from the normal or the t distribution. So, we are interested in splitting up the coefficients, not the observations :/

Anyone has further ideas on how non-centering the mixture? Thank you!