MCMC Fitting¶
- radvel.mcmc.convergence_calculate(chains, oldautocorrelation, minAfactor, maxArchange, minTz, maxGR)[source]¶
Calculate Convergence Criterion
Calculates the Gelman-Rubin statistic, autocorrelation time factor, relative change in autocorrellation time, and the number of independent draws for each parameter, as defined by Ford et al. (2006) (http://adsabs.harvard.edu/abs/2006ApJ…642..505F). The chain is considered well-mixed if all parameters have a Gelman-Rubin statistic of <= 1.03, the min autocorrelation time factor >= 75, a max relative change in autocorrelation time <= .01, and >= 1000 independent draws.
- Parameters
chains (array) – A 3 dimensional array of parameter values
oldautocorrelation (float) – previously calculated autocorrelation time
minAfactor (float) – minimum autocorrelation time factor to consider well-mixed
maxArchange (float) – maximum relative change in autocorrelation time to consider well-mixed
minTz (int) – minimum Tz to consider well-mixed
maxGR (float) – maximum Gelman-Rubin statistic to consider well-mixed
- Returns
- tuple containing:
- ismixed (bool):
Are the chains well-mixed?
- afactor (array):
A matrix containing the autocorrelation time factor for each parameter and ensemble combination
- archange (matrix):
A matrix containing the relative change in the autocorrelation time factor for each parameter and ensemble combination
- autocorrelation (matrix):
A matrix containing the autocorrelation time for each parameter and ensemble combination
- gelmanrubin (array):
An NPARS element array containing the Gelman-Rubin statistic for each parameter (equation 25)
- Tz (array):
An NPARS element array containing the number of independent draws for each parameter (equation 26)
- Return type
tuple
- History:
- 2010/03/01:
Written: Jason Eastman - The Ohio State University
- 2012/10/08:
Ported to Python by BJ Fulton - University of Hawaii, Institute for Astronomy
- 2016/04/20:
Adapted for use in RadVel. Removed “angular” parameter.
- 2019/10/24:
Adapted to calculate and consider autocorrelation times
- radvel.mcmc.convergence_check(minAfactor, maxArchange, maxGR, minTz, minsteps, minpercent, headless)[source]¶
Check for convergence
Check for convergence for a list of emcee samplers
- Parameters
minAfactor (float) – Minimum autocorrelation time factor for chains to be deemed well-mixed and halt the MCMC run
maxArchange (float) – Maximum relative change in the autocorrelative time to be deemed well-mixed and halt the MCMC run
maxGR (float) – Maximum G-R statistic for chains to be deemed well-mixed and halt the MCMC run
minTz (int) – Minimum Tz to consider well-mixed
minsteps (int) – Minimum number of steps per walker before convergence tests are performed. Convergence checks will start after the minsteps threshold or the minpercent threshold has been hit.
minpercent (float) – Minimum percentage of total steps before convergence tests are performed. Convergence checks will start after the minsteps threshold or the minpercent threshold has been hit.
headless (bool) – if set to true, the convergence statistics will not be displayed in real time.
- radvel.mcmc.mcmc(post, nwalkers=50, nrun=10000, ensembles=8, checkinterval=50, minAfactor=40, maxArchange=0.03, burnAfactor=25, burnGR=1.03, maxGR=1.01, minTz=1000, minsteps=1000, minpercent=5, thin=1, serial=False, save=False, savename=None, proceed=False, proceedname=None, headless=False)[source]¶
Run MCMC Run MCMC chains using the emcee EnsambleSampler :param post: radvel posterior object :type post: radvel.posterior :param nwalkers: (optional) number of MCMC walkers :type nwalkers: int :param nrun: (optional) number of steps to take :type nrun: int :param ensembles: (optional) number of ensembles to run. Will be run
in parallel on separate CPUs
- Parameters
checkinterval (int) – (optional) check MCMC convergence statistics every checkinterval steps
minAfactor (float) – Minimum autocorrelation time factor to deem chains as well-mixed and halt the MCMC run
maxArchange (float) – Maximum relative change in autocorrelation time to deem chains and well-mixed
burnAfactor (float) – Minimum autocorrelation time factor to stop burn-in period. Burn-in ends once burnGr or burnAfactor are reached.
burnGR (float) – (optional) Maximum G-R statistic to stop burn-in period. Burn-in ends once burnGr or burnAfactor are reached.
maxGR (float) – (optional) Maximum G-R statistic for chains to be deemed well-mixed and halt the MCMC run
minTz (int) – (optional) Minimum Tz to consider well-mixed
minsteps (int) – Minimum number of steps per walker before convergence tests are performed. Convergence checks will start after the minsteps threshold or the minpercent threshold has been hit.
minpercent (float) – Minimum percentage of total steps before convergence tests are performed. Convergence checks will start after the minsteps threshold or the minpercent threshold has been hit.
thin (int) – (optional) save one sample every N steps (default=1, save every sample)
serial (bool) – set to true if MCMC should be run in serial
save (bool) – set to true to save MCMC chains that can be continued in a future run
savename (string) – location of h5py file where MCMC chains will be saved for future use
proceed (bool) – set to true to continue a previously saved run
proceedname (string) – location of h5py file with previously MCMC run chains
headless (bool) – if set to true, the convergence statistics will not display in real time
- Returns
DataFrame containing the MCMC samples
- Return type
DataFrame