In plain English
The Bonferroni correction is the simplest answer to multiple comparisons: if you are running twelve tests and want an overall 5% error rate, judge each one at 0.05 divided by 12, or 0.0042. That is the whole method. Its guarantee is that the family-wise error rate will not exceed the level you chose, and that guarantee holds regardless of how the tests relate to each other.
That last property is what keeps it in use. Most alternatives assume something about dependence between tests, or are more complicated to reason about. Bonferroni assumes nothing, works on a napkin, and cannot be got wrong. When a correction has to be explained to a room that includes people who do not want a lecture on step-down procedures, that simplicity has real value.
The cost is that it is conservative, and increasingly so as the tests become correlated. Experiment metrics usually are correlated — conversion, revenue and add-to-cart move together — so tests that are significant tend to be significant jointly, and the true family-wise rate under Bonferroni comes in well below the nominal level. You are paying for protection you already had, in the currency of statistical power.
For strict error control there is a better option that is no harder to apply. Holm's step-down procedure sorts the p-values ascending and compares the smallest against α/m, the next against α/(m−1), and so on, stopping at the first failure. It controls exactly the same quantity under exactly the same assumptions and is uniformly more powerful — never worse, sometimes considerably better. If software is doing the arithmetic there is very little reason to use plain Bonferroni instead.
And for larger, exploratory sets, the more useful question is whether family-wise control is what you want at all. Guaranteeing a 5% chance of any error across twenty diagnostic metrics leaves nothing detectable. The false discovery rate bounds the expected share of your significant results that are wrong instead, which is a weaker claim, considerably more power, and a better match for screening.
The formula
One division, and the two alternatives that improve on it in different directions.
- The correction
α_per test = α / mm tests, target overall rate α. Twelve tests at 5% gives 0.0042 per test.
- Equivalently, adjust the p-values
p_adjusted = min( 1, m · p )Same decisions, and often easier to report — an adjusted p-value can be compared against 0.05 directly.
- The guarantee
FWER ≤ α, for any dependence between testsFollows from Boole's inequality. This assumption-free property is Bonferroni's entire advantage.
- Holm's improvement
compare p₍ᵢ₎ against α / ( m − i + 1 ), ascendingSame guarantee, uniformly more power, no extra assumptions — see the ANOVA calculator.
Worked example
A five-arm test compares four challengers against control on the primary metric. The four p-values come back at 0.008, 0.021, 0.043 and 0.190. Three corrections are applied to the same numbers.
- Comparisons
- 4 challengers against control
- Raw p-values
- 0.008, 0.021, 0.043, 0.190
- Bonferroni threshold
- 0.05 / 4 = 0.0125 — one survives
- Holm thresholds
- 0.0125, 0.0167, 0.025, 0.05 — one survives
- Dunnett's (accounts for shared control)
- two survive
- Uncorrected
- three would have been called significant
Uncorrected, three challengers look like winners. Bonferroni and Holm find one. Dunnett's, designed for this structure, finds two.
Holm and Bonferroni agree here because the smallest p-value fails at the same first threshold, which stops Holm's step-down immediately — Holm's advantage only materialises when the leading comparisons pass. Dunnett's is the interesting column: it finds two because it exploits something the other two ignore, namely that all four comparisons share the same control arm and are therefore correlated. Bonferroni treats them as though they could be arbitrarily related, which is safe and wastes power that the design's structure had already provided. The practical lesson is to use the correction that matches the structure of what you ran. For challengers against a common control, Dunnett's. For a general set of unrelated tests, Holm. Bonferroni's place is where the arithmetic has to be done quickly and defended simply, and it should be understood as buying that simplicity with power.
Common misconceptions
- דBonferroni is the standard multiple comparisons correction.”
- It is the best known and it is dominated by Holm's step-down procedure, which controls the same quantity under the same assumptions with uniformly more power. Bonferroni's genuine advantage is that it can be computed and explained in seconds; where software is available, Holm is strictly better.
- דBonferroni is too conservative to be useful.”
- It is conservative when tests are correlated, and its guarantee holds under any dependence structure, which few alternatives can claim. That makes it the right tool when a single false positive is genuinely costly and you cannot characterise the relationships between tests. The mistake is applying it to a twenty-metric exploratory panel, where the question calls for false discovery rate control instead.
- דApplying Bonferroni means your analysis is now rigorous.”
- It addresses one source of inflated error — several tests reported together — and leaves flexible exclusions, post-hoc segmentation, opportunistic stopping and metric changes untouched. Correcting for the comparisons you remember making is not a correction. Pre-specifying the analysis is what closes the wider problem.