It should be DGP2. And that is what I see when I run my code:
And for thoroughness in case I typo’d earlier somehow? I split out non_fracitonal_signal_counts below to generate the above figure for debugging.
background_rate = 1e-4
signal_rate=5e-2
simulated_data = pd.DataFrame(
data = [ss.norm.rvs(loc = 10_000, scale = 1_500, size = 500)],
index = ["N"]
).T
simulated_data["N"] = simulated_data["N"].astype(int)
simulated_data["sample_type"] = [np.random.randint(2) for i in range(len(simulated_data))]
simulated_data["fraction"] = ss.uniform.rvs(size=500)
simulated_data["background_counts"] = ss.binom.rvs(n=simulated_data["N"],p=background_rate)
simulated_data["non_fractional_signal_counts"] = ss.binom.rvs(n=simulated_data["N"],p=signal_rate)
cnd = simulated_data["sample_type"] == 0
simulated_data.loc[cnd,"signal_counts"] = 0
simulated_data["signal_counts"] = simulated_data["non_fractional_signal_counts"]*simulated_data["fraction"]
simulated_data["observed_counts"] = simulated_data["signal_counts"] + simulated_data["background_counts"]*(1-simulated_data["fraction"])
simulated_data["observed_counts"] = simulated_data["observed_counts"].astype(int)
for col in simulated_data:
plt.figure(figsize=(7,5))
sns.histplot(simulated_data[col])



