Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extending to RJMCMC #117

Open
mhycheung opened this issue May 8, 2023 · 0 comments
Open

Extending to RJMCMC #117

mhycheung opened this issue May 8, 2023 · 0 comments
Assignees

Comments

@mhycheung
Copy link

Reversible-jump MCMC (https://en.wikipedia.org/wiki/Reversible-jump_Markov_chain_Monte_Carlo) is an extension to standard MCMC, where the Markov chain can transverse between the parameter spaces of different models (possibly of different dimensions). This allows sampling from the posterior of different models and estimating the odds ratio between them by a single RJMCMC run.

The goal of RJMCMC is to avoid wasting time on models with low evidences, which would save computational resources when the number of competing models is high. However, this will require a good proposal for the trans-model jump moves. In fact, the proposal is often highly problem specific, and even a "well-designed" proposal does not give a good acceptance rate for the jump moves.

To solve the low-jump-rate problem, FlowMC might be able to help a lot. For example, a naive implementation could be as follows:

  1. Run an initial standard MCMC within each model, and estimate the posterior and evidence with normalizing flow.
  2. Use the estimated evidence of each model as a guide for constructing the probability of trans-model jumps, and use the estimated posteriors as proposals for each model.
  3. Iteratively refine the evidence and posteriors until the run converges

Step 1 could be replaced by something smarter, such as regular RJMCMC, but that could be problem specific. The above procedure can naturally be implemented on GPUs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

1 participant