def _add_variance_reduction_rate()

in spotify_confidence/analysis/frequentist/confidence_computers/confidence_computer.py [0:0]


def _add_variance_reduction_rate(df: DataFrame, **kwargs: Dict) -> DataFrame:
    denominator = kwargs[DENOMINATOR]
    method_column = kwargs[METHOD]
    if (df[method_column] == ZTESTLINREG).any():
        variance_no_reduction = (
            df[ORIGINAL_VARIANCE + SFX1] / df[denominator + SFX1]
            + df[ORIGINAL_VARIANCE + SFX2] / df[denominator + SFX2]
        )
        variance_w_reduction = (
            df[VARIANCE + SFX1] / df[denominator + SFX1] + df[VARIANCE + SFX2] / df[denominator + SFX2]
        )
        df = df.assign(**{VARIANCE_REDUCTION: 1 - np.divide(variance_w_reduction, variance_no_reduction)})
    return df