Very cool. I may play with this soon. I have to figure out how to easily separate out what are hyperparameters vs parameters in my model.
Would any of you be willing to help convert my stan model to one that can be used with gmo, both for your testing and my benefit?
It's a model that relies heavily on mixture models, so it seems like a prime candidate for this sort of procedure.
The issue is that it's got several mixtures. It's a measurement model (think CFA, 2PL, GRM), but each individual's (i) response on an item (j) can either be produced from a "non-DIF" item model (item j's parameters equal across groups) or from a "DIF" item model (item j's parameters differ across groups). Moreover though, if their response is generated from a DIF item model, it will estimate which latent group the individual belongs to.
The likelihood is something like:

for a CFA.
So there are two 'layers' of mixtures that cross.
There is a mixture model per-item, and within one of the mixture components for each item is a latent group model. Eek. Works decently in NUTS, miserably in vb and optimizing.
mu, lambda, theta, and sigma vectors are all treated as unknown. Each individual's pi vector is estimated using [multinomial] logistic regression, or could just be estimated from an intercept-only model.
Priors are placed to make lambdas positive, and lambdas are ordered across latent groups for one item (to reduce label switching).
I'd love to give gmo a task like this, but I'm not sure what separates the parameters from hyperparameters in this case.