in spotify_confidence/analysis/frequentist/nims_and_mdes.py [0:0]
def _set_nims_and_mdes(grp: DataFrame) -> DataFrame:
nim = grp[nim_column].astype(float)
input_preference = grp[preferred_direction_column].values[0]
mde = None if mde_column is None else grp[mde_column]
nim_is_na = nim.isna().all()
mde_is_na = True if mde is None else mde.isna().all()
if input_preference is None or (type(input_preference) is float and isnan(input_preference)):
signed_nim = 0.0 if nim_is_na else nim * grp[ORIGINAL_POINT_ESTIMATE]
preference = TWO_SIDED
signed_mde = None if mde_is_na else mde * grp[ORIGINAL_POINT_ESTIMATE]
elif input_preference.lower() == INCREASE_PREFFERED:
signed_nim = 0.0 if nim_is_na else -nim * grp[ORIGINAL_POINT_ESTIMATE]
preference = "larger"
signed_mde = None if mde_is_na else mde * grp[ORIGINAL_POINT_ESTIMATE]
elif input_preference.lower() == DECREASE_PREFFERED:
signed_nim = 0.0 if nim_is_na else nim * grp[ORIGINAL_POINT_ESTIMATE]
preference = "smaller"
signed_mde = None if mde_is_na else -mde * grp[ORIGINAL_POINT_ESTIMATE]
else:
raise ValueError(f"{input_preference.lower()} not in " f"{[INCREASE_PREFFERED, DECREASE_PREFFERED]}")
return (
grp.assign(**{NIM: nim})
.assign(**{PREFERENCE: preference})
.assign(**{NULL_HYPOTHESIS: signed_nim})
.assign(**{ALTERNATIVE_HYPOTHESIS: signed_mde if nim_is_na else 0.0})
)