Withings_Normalization_App / normality_checks.py
Lars Masanneck
Proper initial commit
04428af
"""
normality_checks.py
Module for normality check heuristics.
"""
from typing import Tuple
def iqr_tail_heaviness(iqr: float, sd: float) -> float:
"""Return ratio R = IQR/SD for tail heaviness checking."""
return iqr / sd if sd != 0 else float("nan")
def quartile_z_scores(
mean: float,
sd: float,
q1: float,
q3: float,
) -> Tuple[float, float]:
"""Return observed z-scores for Q1 and Q3."""
if sd == 0:
return (float("nan"), float("nan"))
q1_z = (q1 - mean) / sd
q3_z = (q3 - mean) / sd
return q1_z, q3_z
def pearson_skewness(mean: float, median: float, sd: float) -> float:
"""Return Pearson's moment coefficient of skewness."""
return 3 * (mean - median) / sd if sd != 0 else float("nan")