Multiple-comparison adjustments (Bonferroni, Holm, Hochberg, Benjamini–Hochberg)
Adjust p-values when running several tests so that either the family-wise error rate (FWER) or the false discovery rate (FDR) stays at α.
- Number of tests in the family.
- Unadjusted p-value of test i.
- The p-values sorted in increasing order.
- Rank of a p-value in the sorted list.
When to use
Whenever several hypotheses are tested and any one "hit" would be reported: many variants against a control, many metrics or segments, all pairs of groups. Decide the family and the method before looking at results.
- FWER (Bonferroni, Holm, Hochberg): probability of at least one false positive ≤ α. Use for confirmatory claims and small families.
- FDR (Benjamini–Hochberg): expected share of false positives among the rejections ≤ α. Use for screening many hypotheses.
Assumptions
Bonferroni and Holm are valid under any dependence. Hochberg and BH assume independent or positively dependent tests (Benjamini–Yekutieli covers arbitrary dependence at a cost in power).
How to interpret
Compare adjusted p-values with α as usual. With 20 independent tests at α = 0.05 and all nulls true, the chance of at least one false positive is — that is what adjustment prevents.
Common mistakes
- Adjusting only the tests that "look interesting" (the family must include every test run).
- Using Bonferroni when Holm is available (Holm rejects everything Bonferroni does, and sometimes more).
- Reading an FDR-adjusted significant result as having FWER protection.
Example
Four variant-vs-control tests: p = 0.01, 0.04, 0.03, 0.20.
- Bonferroni: 0.04, 0.16, 0.12, 0.80 → one rejection at 0.05.
- Holm: 0.04, 0.09, 0.09, 0.20 → one rejection.
- Hochberg: 0.04, 0.08, 0.08, 0.20 → one rejection.
- BH: 0.04, 0.053, 0.053, 0.20 → one rejection at FDR 5% (three at 10%).