Explain demographic parity vs equalized odds. Can you satisfy both at once?
Demographic parity requires equal positive-prediction rates across groups, ignoring the true label; equalized odds requires equal true-positive and false-positive rates across groups, conditioning on the true label. In general you cannot satisfy both simultaneously (except in degenerate cases), because of impossibility results when base rates differ. Which metric to use depends on the harm you're trying to prevent.
How to think about it
The crisp answer
Demographic parity says the positive-prediction rate should be equal across protected groups, regardless of the ground truth. Equalized odds says the model’s true-positive rate and false-positive rate should be equal across groups — that is, accuracy of the kind that matters is the same per group, conditioned on the actual label. You generally cannot satisfy both at once when group base rates differ.
Why they differ
Demographic parity looks only at outputs: it’s satisfied if, say, loans are approved at the same rate for every group. Equalized odds looks at correctness within each true class: among people who would actually repay, the approval rate is equal across groups, and likewise for those who wouldn’t. The Fairlearn fairness metrics guide defines both precisely.
Why you can’t have both
Impossibility results (Kleinberg et al.; Chouldechova) show that when the base rates differ between groups, demographic parity, equalized odds, and calibration are mutually incompatible except in trivial cases. Enforcing equal positive rates (parity) forces different error rates (violating odds), and vice versa.
How to choose
Pick the metric aligned with the harm:
- Demographic parity when you want equal access/representation (e.g. who sees a job ad) even if base rates differ.
- Equalized odds when error costs matter per group (e.g. a wrongful arrest or denied medical treatment), so false positives/negatives must be balanced.
The common trap
Claiming you can optimize all fairness metrics together, or thinking that just dropping the protected attribute ensures fairness — proxies (zip code, name) leak it. Mitigation spans pre-processing (reweighting), in-processing (fairness constraints in the objective), and post-processing (threshold adjustment). Follow-up: “What if base rates are equal?” — then the conflict can vanish, which is why the impossibility is conditional on differing base rates.