Sometimes the natural parameterization of your model and the parameterization that is best for sampling do not agree. There are a number of reasons this might be the case, off the top of my head:
- distributions are more similar to gaussian (which Liu-West likes) in unnatural parameterization (a beta distribution does not look gaussian in many regimes, but reparametrized through a sigmoid logistic it does)
- distributions are less correlated in unnatural parameterization
- model parameters are easier to bound in unnatural parametrization
canonicalize and are_models_valid can be made easier to implement
- timestep updates are simpler to implement
MCMC libraries such as stan have built in functionality to reparameterize bounded parameters and objects such as simplices.
I was originally thinking this would make sense as a DerivedModel. After some more careful consideration, I think it makes much more sense as an abstract class ModelReparameterization with methods to_natural and from_natural. Instances of such are given to an instance of SMCUpdaterReparameterized which is subclassed from SMCUpdater.
Let me know what you think.
Sometimes the natural parameterization of your model and the parameterization that is best for sampling do not agree. There are a number of reasons this might be the case, off the top of my head:
canonicalizeandare_models_validcan be made easier to implementMCMC libraries such as stan have built in functionality to reparameterize bounded parameters and objects such as simplices.
I was originally thinking this would make sense as a
DerivedModel. After some more careful consideration, I think it makes much more sense as an abstract classModelReparameterizationwith methodsto_naturalandfrom_natural. Instances of such are given to an instance ofSMCUpdaterReparameterizedwhich is subclassed fromSMCUpdater.Let me know what you think.