Hierarchical Linear Mixture Model


#1

I have implemented a stan hierarchical model with level 1 to be a linear model and level 2 Gaussian mixture model. The models has convergence problem. Any comments on improving the model.

            data {
              int<lower=0> J; # No of subjects
              int<lower=0> N; # No of observations
              int<lower=1,upper=J> RID[N]; 
              vector[N] x;  # Cognitive Score
              vector[N] y; # Output Label - Disease Stage
            }
            parameters{
              vector[J] a;  
              real mu_a;
              vector[J] b;
              real mu_b;
              real<lower=0,upper=1> sigma_a;
              real<lower=0,upper=1> sigma_b;
              
             # Gaussian Parameters for level 2
              
              vector[2] mu;
              real<lower=0> sigma[2];
              real<lower=0, upper=1> theta;
              
            }
            transformed parameters {
              vector[N] y_hat;
              for(i in 1:N)
                y_hat[i] = a[RID[i]] + x[i] * b[RID[i]];
            }
            model {
              sigma_a ~ uniform(0, 1);
              a ~ normal(mu_a, sigma_a);
            
              sigma_b ~ uniform(0, 1);
              b ~ normal(mu_b, sigma_b);
            
             sigma ~ normal(0, 1);
             mu ~ normal(0, 1);
             theta ~ beta(5, 5);
             target += log_mix(theta,
                                 normal_lpdf(y_hat | mu[1], sigma[1]),
                                 normal_lpdf(y_hat | mu[2], sigma[2]));
              
              
            }

#2

There is a lot of stuff that could be wrong - I wrote a list of strategies to try at https://www.martinmodrak.cz/2018/02/19/taming-divergences-in-stan-models/ - it is aimed at divergences, but a lot of it works as well for high Rhat, low BFMI or low n_eff scenarios.