in spotify_confidence/analysis/frequentist/multiple_comparison.py [0:0]
def add_ci(df: DataFrame, **kwargs: Dict) -> DataFrame:
lower, upper = confidence_computers[df[kwargs[METHOD]].values[0]].ci(df, ALPHA, **kwargs)
if kwargs[CORRECTION_METHOD] in [
HOLM,
HOMMEL,
SIMES_HOCHBERG,
SPOT_1_HOLM,
SPOT_1_HOMMEL,
SPOT_1_SIMES_HOCHBERG,
] and all(df[PREFERENCE_TEST] != TWO_SIDED):
if all(df[kwargs[METHOD]] == "z-test"):
adjusted_lower, adjusted_upper = confidence_computers["z-test"].ci_for_multiple_comparison_methods(
df, kwargs[CORRECTION_METHOD], alpha=1 - kwargs[INTERVAL_SIZE]
)
else:
raise NotImplementedError(f"{kwargs[CORRECTION_METHOD]} is only supported for ZTests")
elif kwargs[CORRECTION_METHOD] in [
BONFERRONI,
BONFERRONI_ONLY_COUNT_TWOSIDED,
BONFERRONI_DO_NOT_COUNT_NON_INFERIORITY,
SPOT_1,
SPOT_1_HOLM,
SPOT_1_HOMMEL,
SPOT_1_SIMES_HOCHBERG,
SPOT_1_SIDAK,
SPOT_1_HOLM_SIDAK,
SPOT_1_FDR_BH,
SPOT_1_FDR_BY,
SPOT_1_FDR_TSBH,
SPOT_1_FDR_TSBKY,
]:
adjusted_lower, adjusted_upper = confidence_computers[df[kwargs[METHOD]].values[0]].ci(
df, ADJUSTED_ALPHA, **kwargs
)
else:
warn(f"Confidence intervals not supported for {kwargs[CORRECTION_METHOD]}")
adjusted_lower = None
adjusted_upper = None
return (
df.assign(**{CI_LOWER: lower})
.assign(**{CI_UPPER: upper})
.assign(**{ADJUSTED_LOWER: adjusted_lower})
.assign(**{ADJUSTED_UPPER: adjusted_upper})
)