def _summarize_joint_samples_single()

in src/mozanalysis/bayesian_stats/__init__.py [0:0]


def _summarize_joint_samples_single(focus, reference, quantiles=DEFAULT_QUANTILES):
    str_quantiles = [str(q) for q in quantiles]

    index = pd.MultiIndex.from_tuples(
        [("rel_uplift", q) for q in str_quantiles + ["exp"]]
        + [("abs_uplift", q) for q in str_quantiles + ["exp"]]
        + [("max_abs_diff", "0.95"), ("prob_win",)]
    )

    res = pd.Series(index=index, dtype="float")

    rel_uplift_samples = focus / reference - 1
    res.loc[[("rel_uplift", q) for q in str_quantiles]] = np.quantile(
        rel_uplift_samples, quantiles
    )

    res.loc[("rel_uplift", "exp")] = np.mean(rel_uplift_samples)

    abs_uplift_samples = focus - reference
    res.loc[[("abs_uplift", q) for q in str_quantiles]] = np.quantile(
        abs_uplift_samples, quantiles
    )

    res.loc[("abs_uplift", "exp")] = np.mean(abs_uplift_samples)

    res.loc[("max_abs_diff", "0.95")] = np.quantile(np.abs(abs_uplift_samples), 0.95)

    res.loc["prob_win"] = np.mean(focus > reference)

    return res