In [51]:
import matplotlib
#matplotlib.use('Agg')
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set()
In [52]:
import numpy as np
import h5py
from ast import literal_eval
from chainconsumer import ChainConsumer
#from corner import corner
In [53]:
%%bash
ls /u/ki/swmclau2/des/SherlockPearceMCMC/*.hdf5 -sh
In [54]:
fname = '/u/ki/swmclau2/des/SherlockPearceMCMC/pearce_mcmc_joint_ind.hdf5'
In [55]:
f = h5py.File(fname, 'r')
In [56]:
f.attrs.keys()
Out[56]:
In [57]:
n_walkers = f.attrs['nwalkers']
n_steps = f.attrs['nsteps']
n_burn = 10000#f.attrs['nburn']
In [58]:
chain_param_names = f.attrs['param_names']
In [59]:
chain = f['chain'].value
chain = chain[:n_burn*n_walkers, :]
In [60]:
#n_walkers = 500
n_params = chain.shape[1] if len(chain.shape) > 1 else 1
In [61]:
MAP = chain.mean(axis = 0)
print MAP
In [62]:
chain_param_names
Out[62]:
In [63]:
param_names = [r'$\Omega_b h^2$', r'$\Omega_c h^2$', r'$w_0$', r'$n_s$', r'$\ln(10A_s)$', r'$H_0$', r'$N_{eff}$',\
r'$\log(M_0)$', r'$\sigma_{\log M }$', r'$\log(M_1)$', r'$\alpha$']
In [64]:
hod_param_names = param_names[7:]
cosmo_param_names = param_names[:7]
In [65]:
c = ChainConsumer()
c.add_chain(chain, walkers=n_walkers, parameters = param_names)
c.configure(statistics='cumulative')
Out[65]:
In [66]:
sim_info = literal_eval(f.attrs['sim'])
In [67]:
sim_info
Out[67]:
In [68]:
cosmo_true_vals = [sim_info['cosmo_params'][key] for key in chain_param_names if key in sim_info['cosmo_params']]
In [69]:
hod_true_vals = [sim_info['hod_params'][key] for key in chain_param_names if key in sim_info['hod_params']]
In [70]:
fig = c.plotter.plot(figsize=(10,10), parameters = cosmo_param_names, truth = cosmo_true_vals)# parameters = [param_names[i] for i in (1, 4)])
#, truth = true_vals)
fig.show()
In [71]:
fig = c.plotter.plot(figsize=(10,10), parameters = hod_param_names, truth = hod_true_vals)# parameters = [param_names[i] for i in (1, 4)])
#, truth = true_vals)
fig.show()
In [72]:
#c.configure(statistics='max')
fig = c.plotter.plot_distributions(figsize=(10, 3) ,parameters = hod_param_names, truth = hod_true_vals)
fig.show()
In [73]:
#c.configure(statistics='max')
fig = c.plotter.plot_distributions(figsize=(10, 6) , parameters = cosmo_param_names, truth = cosmo_true_vals)
fig.show()
In [74]:
gelman_rubin_converged = c.diagnostic.gelman_rubin()
print gelman_rubin_converged
In [75]:
np.sqrt(np.diag(c.analysis.get_covariance()[1]))
Out[75]:
In [76]:
summary = c.analysis.get_summary()
for key, val in summary.iteritems():
print key, val[1]
In [77]:
MAP = np.array([summary[p][1] for p in param_names])
print MAP
In [78]:
print param_names
In [ ]: