Example #1
0
### mcmc
import time
print 'start', time.asctime()

n_step = int(1e5)

hyper0 = np.array([0.3, 0.3, 0.1])
hyper_stepsize = 1e-2 * np.ones(3)
local0 = np.hstack(( 0.3*np.ones(n_group), 0.3*np.ones(n_group), 3. *np.ones(n_group) ))
local_stepsize = np.hstack(( 1e-2 * np.ones(2*n_group), 0.3 * np.ones(n_group) ))


hyper_chain, local_chain, loglikelihood_chain, repeat_chain, stop_step = \
hbm_joint(hyper0, hyper_stepsize, local0, local_stepsize, n_step, \
hyper_prior, local_given_hyper, data_given_local, data=[mass_obs, mass_err, rad_obs, rad_err], \
hyper_domain=hyper_domain, local_domain=local_domain, \
trial_upbound = n_step*10)

print 'end', time.asctime()
			

### plot
row = 2
col = 4

f, ((a00,a01,a02,a03),(a10,a11,a12,a13))=plt.subplots(row,col,figsize=(col*5,row*5))
ax = ((a00,a01,a02,a03),(a10,a11,a12,a13))

ax[0][3].plot(loglikelihood_chain[:stop_step])
ax[0][3].set_xlabel('loglikelihood')
### mcmc
import time
print 'start:', time.asctime()

n_step = int(1e5)
n_hyper = 4 # hyper_c1, hyper_c0, hyper_sigc1, hyper_sigc0


hyper0 =  np.array([ 2.*hyper_c1, 2.*hyper_c0, hyper_sigc1, hyper_sigc0]) 
local0 =  2.*np.hstack((local_c1,local_c0))
hyper_stepsize = np.array([1e-1, 1e-1, 1e-1, 1e-1])
local_stepsize = 1e-1 * np.ones(2*n_group)

hyper_chain, local_chain, loglikelihood_chain, repeat_chain, stop_step = \
hbm_joint(hyper0, hyper_stepsize, local0, local_stepsize, n_step, \
hyper_prior, local_given_hyper, data_given_local, data=[x_real,y_data,y_err], \
hyper_domain=hyper_domain, local_domain = None, \
trial_upbound = 1e6, random_seed = seed)


'''
hyper_prob0 = np.array([0.3, 0.3, 0.8, 0.8])
local_prob0 = 0.3 * np.ones(2*n_group)
hyper_stepsize = 3e-3 * np.ones(n_hyper)
local_stepsize = 3e-3 * np.ones(2*n_group)

hyper_prob_chain, hyper_chain, local_prob_chain, local_chain, \
loglikelihood_chain, repeat_chain, stop_step = \
hbm_joint_cdf(hyper_prob0, hyper_stepsize, local_prob0, local_stepsize, n_step,\
inverse_hyper, inverse_local, \
data_given_local, model, data=[x_real, y_data, y_err], \
trial_upbound = 1e6, random_seed = seed)