Great, thank you. That’s very helpful.
The reason that (I think) the Mixture class is too inflexible is that I want to apply weights to the likelihood for chunks of observed data for each model in the mixture, e.g., the likelihood for first half of the observed data y[:k] will have a different weight to the second half y[k:] for a given model.
I’m still not sure how to do this by specifying a generative process but I think your example gets me closer.