Dear Stan users:

I am currently using Rstan to fit a mixture of 2-component Gaussian model over T periods.

observation y_it represents the ith observation in period t and can be represented as

y_it = lambda_t * N( mu1, sigma1) + (1-lambda_t) * N(mu2, sigma2)

hence the mixture components locations and scales are the same in all time periods while only the mixing weights are time dependent.

Further, I impose the overall mixture mean lambda_t * mu1 + (1-lambda_t) * mu2 = z_t (which is a smooth function)

In order to satisfy the above equation, I let mu= (inverse(lambda’ * lambda) *(lambda’*(z)))

And then assign priors on lambda and z.

I formulate lambda prior as its natural parameterisation eta ~ MVN ( mu_eta, Sigma_eta) and back-transform

lambda = softmax(eta) where mu_eta and Sigma_eta have hyperpriors which are chosen in such a way that lambda is uniform between (0,1) .

To ensure identifiability, I would like to assign mu as ordered[2] mu, however, whenever, I define this it generates lots of errors saying that mu is not a valid ordered vector, which leads to me think that perhaps I miss assign some prior constraints.

Since lambda_t is a cyclic function in my real data so I do not want to constrain lambda_t to be ordered.

Instead, I want to put some indicators function on the prior on eta such that it only draws values from my specified MVN if mu[2] >mu[1].

Through reading the manual, I came across STEP function and I used in my programme, I am not sure whether this is correct or appropriate to impose such a condition.

Any suggestions are greatly welcome.

I have attached my programme ( this is only for prior distributions, there is no data involved at the moment)

visualise prior distribution.stan (1.9 KB)

In this above programme, I basically model the hyperparameters and then in the generated quantities draw eta, lambda, mu from the specified distribution which I would like to see the prior distributions of these parameters. I am not sure whether it is the right way to visualise my model with only prior distributions without actual data involved. Thanks in advance for your feedback!