def get_new_cor(chain, mean_add=0, sigma_add=0): mB_mean, mB_width = get_approximate_mb_correction() data = { "mB_mean": mB_mean, "mB_width": mB_width, "snana_dummy": True, "sim": False } d = get_analysis_data(**data) redshifts = d["redshifts"] cosmologies = get_cosmology_dictionary() weight = [] for i in range(chain["mean_MB"].size): om = np.round(chain["Om"][i], decimals=3) key = "%0.3f" % om mus = cosmologies[key](redshifts) mb = chain["mean_MB"][i] + mus - chain["alpha"][i] * chain["mean_x1"][i] + chain["beta"][i] * chain["mean_c"][i] # cc = 1 - norm.cdf(mb, mB_mean, mB_width) + 0.001 cc = 1 - norm.cdf(mb, mB_mean + mean_add, mB_width + sigma_add) w = np.sum(np.log(cc) - chain["mean_c"][i]) weight.append(w) return np.array(weight)
def approx_bias(): file = os.path.abspath(inspect.stack()[0][1]) dir_name = os.path.dirname(file) data_dir = os.path.abspath(dir_name + "/../data") pickle_file = data_dir + os.sep + "supernovae_passed.npy" supernovae = np.load(pickle_file) d = get_cosmology_dictionary() data = get_analysis_data() n = 1000 init_vals = [init_fn(data=data) for i in range(n)] keys = list(init_vals[0].keys()) chain_dictionary = {} for key in keys: chain_dictionary[key] = np.array([elem[key] for elem in init_vals]) weights, mean_abs = calculate_bias(chain_dictionary, supernovae, d, return_mbs=True) import matplotlib.pyplot as plt plt.scatter(mean_abs, weights) plt.show()
ax0.scatter(config["zs"], muc, label=config["label"], lw=0, s=6, c=config["color"], alpha=0.3) ax1.scatter(config["zs"], muc - fid.distmod(config["zs"]).value, s=6, lw=0, c=config["color"], alpha=0.3) ax0.legend(loc=2) plt.subplots_adjust(wspace=0, hspace=0.05) this_file = inspect.stack()[0][1] dir_name = os.path.dirname(this_file) output_dir = dir_name + "/output/" print("Saving to " + output_dir + "%s.png" % filename) fig.savefig(output_dir + "%s.png" % filename, bbox_inches="tight", transparent=True, dpi=250) fig.savefig(output_dir + "%s.pdf" % filename, bbox_inches="tight", transparent=True, dpi=250) if __name__ == "__main__": h = HubblePlotter() data = get_analysis_data(seed=0) zs = data["redshifts"] deta_dcalib = data["deta_dcalib"] obs_mBx1c = np.array(data["obs_mBx1c"]) abs = -19.365 mags = obs_mBx1c[:, 0] + 0.14 * obs_mBx1c[:, 1] - 3.1 * obs_mBx1c[:, 2] obs_mBx1c2 = np.copy(obs_mBx1c) calib = np.array([0, 0.01*9, 0, 0]) calib_change = np.dot(deta_dcalib, calib) obs_mBx1c2 += calib_change mags2 = obs_mBx1c2[:, 0] + 0.14 * obs_mBx1c2[:, 1] - 3.1 * obs_mBx1c2[:, 2] h.add_config(0.3, abs, mags, zs, "No calib", 'b') h.add_config(0.24, abs, mags2, zs, "calib", 'r') h.plot()