| """ | |
| 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") | |