Best way to pass a simplex to another model

I would like to pass the posterior of a simplex from a model to another. I understand the best way to do it (alternatively to build a joint model) is to parametrize the simplex and put it as prior for a downstream parameter.


  1. fitting a mle dirichlet on the simplex posterior
  2. use it as prior for a parameter in downstream model


doing 1 and 2 with a unconstrained softmax and use multivariate normal.

I would like if possible to keep the simplex to keep using dirichlet (for hierarchical regression, that I would like in simplex space)

I have had some success previously with fitting a parametrized distribution to a posterior and using it as a prior for downstream analysis (it is in my StanCon 2018 submission, section " Transferring the learned expression to other fits"). This actually has the effect of restricting information to flow only in one direction - which was a good thing for my use case but might be problematic in general.

The key is IMHO to always check that the parametrized approximation makes sense for the specific fit. I would guess that multivariete normal on the unconstrained scale is more likely to work than Dirichlet on the constrained simplex, but you really need to check which actually works better for your model AND data.

1 Like