Responsible AI packIBM telco holdout

reports/fairness.json

A measurement, not a certificate.

Demographic parity difference is 0.223259 for SeniorCitizen and 0.030582 for gender. Both fields are model inputs. This is one split and one cutoff.

Not a fairness certificate

Move this cutoff in the demo. The tables below stay on the published threshold.

Published differences

Absolute difference between the largest and smallest group selection rates, as returned by fairlearn.metrics.demographic_parity_difference.

The larger of the absolute true-positive-rate gap and the absolute false-positive-rate gap across groups, as returned by fairlearn.metrics.equalized_odds_difference.

gender

Equalized odds difference 0.020532. Mean absolute SHAP for this original field is 0.019143.

Female (n=863, label rate 0.278100) and Male (n=898, label rate 0.252784) are close on selection rate (0.213210 and 0.182628), true positive rate (0.508333 and 0.488987), false positive rate (0.099518 and 0.078987), and ROC-AUC (0.839811 and 0.851937).

Source: reports/fairness.json and the mean absolute SHAP rows in reports/shap_summary.json

Group rates

Overall, 467 of 1761 held-out rows are positive (rate 0.265190). The selection rate at this cutoff is 0.197615.

Positive when the saved pipeline's predict() returns class 1, which is when P(Churn=Yes) > 0.5. An exact tie stays class 0.

P(Churn=Yes) from predict_proba, not the hard label.

The IBM CSV has no race, ethnicity, region, language, or disability column. This check does not cover them. gender is a model input: true. SeniorCitizen is a model input: true.
GroupnLabel rateSelection rateTPRFPRROC-AUC
Female8630.2781000.2132100.5083330.0995180.839811
Male8980.2527840.1826280.4889870.0789870.851937
SeniorCitizen 014750.2338980.1613560.4550720.0716810.845995
SeniorCitizen 12860.4265730.3846150.6229510.2073170.800680
Selection rate and false positive rate by gender and by SeniorCitizen on the held-out split.
Selection rate and false positive rate on the held-out split, from reports/fairness.json. Hard labels use P(Churn=Yes) > 0.5.assets/fairness_rates.png