-
Notifications
You must be signed in to change notification settings - Fork 6
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
Allow multiple chains in method_bayes() #417
Comments
This all seems more than reasonable to me... To be honest I'm kind of suprised we don't already allow for this. @nociale - Can you remember why we are so restrictive with the configuration for the MCMC sampling. I seem to remember there was an argument about keeping the warmup very small because we start the sampling at the MLE but I'm not sure if we debated much about the MCMC diagnostics. |
@gowerc I also cannot remember any reason other than the warmup phase which will have to be repeated for each chain. I agree that allowing the user to choose the number of chains (as an optional argument) can be an enhancement for the package. |
@nociale - The current design sets the starting values to be that of the MLEs. Would it be an issue then that all chains are using the exact same starting values ? If so how would you generate starting values ? Potentially you could draw them from the asymptotic normal distribution of the MLE (perhaps shrunk towards the mean) but this is potentially quite a bit of effort for questionable value ? |
@gowerc True, we would need to add some randomness to the initial values of the chains. Another (simpler) option to the one you suggest could be to just use the rstan default option for the initial values (https://mc-stan.org/docs/2_25/reference-manual/initialization.html). We may need to increase the default warmup phase in this case with respect to using only 1 chain initialized at the REML parameter estimates from a MMRM model. The user could then override the default option of using one chain and choose "X" chains with random initial values. This option could be potentially explored as it should be relatively easy to implement (?). In my personal experience with our implementation of Bayesian MI, I could not find cases of clear convergence issues, so I would agree that this could be considered a "nice to have" more than a "must have" for the package. @wolbersm do you have any thought about the relevance of adding an option to allow the user to run multiple chains for the MCMC step of Bayesian MI? |
@nociale No, not really. In principle, I am supportive but also I agree that this is not a "must have". As you write, currently, the chain is started from "good" starting values (the REML parameter estimates). Before multiple chains are supported, it would be good to make some experiments to ensure that chains converge to the stationary distribution within reasonable time frame if started from random values. |
Currently,
method_bayes()
only runs a single Markov chain. Among other things, this limits the diagnostics that can performed.It would be great if the number of Markov chains to be run can be specified as input argument in
method_bayes()
. Ideally, it should also be allowed to run them in parallel through thecores
argument.The text was updated successfully, but these errors were encountered: