Reverse Jump MCMC

I am considering finite mixture models with an unknown number of components.
Is there a way to use Stan in this way, for example jumping between the different models according to the Reverse Jump MCMC algorithm? An implementation of the usage is available in MATLAB in the package bayesf (Monographie). If appliying the package on data of a Finite mixture Poisson model with the input of data, K_min, K_max (K is the number of components), the output are the estimated paramers of the Poisson components (K) and the weights of the mixture. K is an element from [K_min, K_max].
Is something similar possible with STAN?

I would be happy to get some pointers on this.

X.

Stan does not implement reversible jump MCMC, and in general HMC-based algorithms don’t mix with reversible jump. If K_{max} - K_{min} is not too large, then it might be possible to estimate this model by marginalizing over all the allowable values of K or alternatively by estimating a model for each value of K and then using stacking to combine the posteriors with appropriate weighting.

Note that reversible jump corresponds to spike-and-slab priors on the K components. There are other sparsity-inducing priors that aren’t as extreme as the spike-and-slab that can play more nicely with Stan, but the more closely your prior approximates a spike-and-slab the harder it becomes to estimate. See Sparsity Blues

5 Likes