def convergence_plots(sampler): plt.figure() plt.plot(sampler.lnprobability.T) plt.figure() pu.plot_emcee_chains(sampler.chain) triangle.corner(sampler.flatchain) print 'Autocorrelation lengths: ', ac.emcee_chain_autocorrelation_lengths(sampler.chain) print 'Gelman-Rubin R: ', ac.emcee_gelman_rubin_r(sampler.chain)
def convergence_plots(sampler): plt.figure() plt.plot(sampler.lnprobability.T) plt.figure() pu.plot_emcee_chains(sampler.chain) triangle.corner(sampler.flatchain) print 'Autocorrelation lengths: ', ac.emcee_chain_autocorrelation_lengths( sampler.chain) print 'Gelman-Rubin R: ', ac.emcee_gelman_rubin_r(sampler.chain)
sampler = emcee.EnsembleSampler(args.walkers, logpost.nparams, logpost, threads=args.threads) with bz2.BZ2File(op.join(args.outdir, 'chain.npy.bz2'), 'r') as inp: chain = np.load(inp) with bz2.BZ2File(op.join(args.outdir, 'lnprob.npy.bz2'), 'r') as inp: lnprob = np.load(inp) sampler._chain = chain sampler._lnprob = lnprob while True: sampler.run_mcmc(sampler.chain[:,-1,:], args.nstep, thin=args.nthin) print 'Saving state after ', sampler.chain.shape[1], ' samples....' print 'Autocorrelations are ', ac.emcee_chain_autocorrelation_lengths(sampler.chain, fburnin=args.fburnin) chain_name = uuid.uuid4().hex lnprob_name = uuid.uuid4().hex chain_name = chain_name + '.npy.bz2' lnprob_name = lnprob_name + '.npy.bz2' chain_file = op.join(args.outdir, chain_name) lnprob_file = op.join(args.outdir, lnprob_name) with bz2.BZ2File(chain_file, 'w') as out: np.save(out, sampler.chain) with bz2.BZ2File(lnprob_file, 'w') as out: np.save(out, sampler.lnprobability)
def acls(self): """Return the estimate of the current chain's autocorrelation lengths, using :func:`plotutils.autocorr.emcee_chain_autocorrelation_lengths`. """ return ac.emcee_chain_autocorrelation_lengths(self.chain)