Skip to content
Snippets Groups Projects

Add a mean-log-likelihood method to improve the ACT estimation

Merged Gregory Ashton requested to merge add-mean-log-like-to-ptemcee into master
All threads resolved!
1 file
+ 13
9
Compare changes
  • Side-by-side
  • Inline
@@ -618,14 +618,17 @@ class Ptemcee(MCMCSampler):
def get_mean_logl_min_it(mean_log_likelihood, frac):
nsteps = mean_log_likelihood.shape[1]
if nsteps > 10:
zero_chain_mean_log_likelihood = mean_log_likelihood[0, :]
maxl = np.max(zero_chain_mean_log_likelihood)
fracdiff = (maxl - zero_chain_mean_log_likelihood) / np.abs(maxl)
if nsteps < 10:
return 0
min_it = 0
for x in mean_log_likelihood:
maxl = np.max(x)
fracdiff = (maxl - x) / np.abs(maxl)
idxs = fracdiff < frac
if np.sum(idxs) > 0:
return np.min(np.arange(len(idxs))[idxs])
return 0
min_it = np.max([min_it, np.min(np.arange(len(idxs))[idxs])])
return min_it
def check_iteration(
@@ -994,9 +997,10 @@ def plot_tau(
def plot_mean_log_likelihood(mean_log_likelihood, outdir, label):
ntemps, nsteps = mean_log_likelihood.shape
max_logl = np.max(mean_log_likelihood)
ymax = max_logl + 0.01 * np.abs(max_logl)
ymin = max_logl - 0.1 * np.abs(max_logl)
ymax = np.max(mean_log_likelihood)
ymin = np.min(mean_log_likelihood[:, -100:])
ymax += 0.1 * (ymax - ymin)
ymin -= 0.1 * (ymax - ymin)
fig, ax = plt.subplots()
idxs = np.arange(nsteps)
Loading