Introduction
When a clinical trial or other statistical study evaluates several hypotheses, the probability of obtaining at least one apparently significant result can be larger than the nominal significance level.
For example, if five independent hypotheses are each tested at the conventional 0.05 level, the probability of at least one false positive can be substantially greater than 5%. This is the fundamental multiplicity problem.
The Holm-Bonferroni procedure, also called the Holm step-down procedure, provides a simple way to control the family-wise error rate (FWER) while generally being less conservative than applying the ordinary Bonferroni correction to every hypothesis at the same threshold.
The Multiple Testing Problem
Suppose a study evaluates \(m\) null hypotheses:
and produces corresponding p-values:
If each hypothesis is tested independently at level \(\alpha=0.05\), the probability of making at least one Type I error can exceed 0.05.
The family-wise error rate is:
A multiplicity adjustment attempts to ensure:
The Ordinary Bonferroni Correction
The simplest FWER adjustment is the Bonferroni correction. For \(m\) hypotheses, each individual hypothesis is tested at:
Equivalently, a p-value can be multiplied by \(m\):
The Bonferroni method is attractive because it is simple and makes very few assumptions about the dependence among tests.
However, it can be conservative, particularly when many hypotheses are being tested and some p-values are extremely small.
What Makes Holm Different?
Holm's procedure retains the FWER control of Bonferroni but uses the information contained in the ordering of the p-values.
The p-values are first sorted:
The smallest p-value is compared with the most stringent threshold:
The second-smallest p-value is compared with:
The process continues until:
is used for the \(j\)-th ordered p-value.
The Holm Step-Down Algorithm
Suppose there are \(m\) hypotheses and the desired family-wise error rate is \(\alpha\). The Holm procedure can be implemented in the following sequence.
The Mathematical Rule
For the \(j\)-th ordered p-value, Holm compares:
The decision rule is therefore:
If instead:
the procedure stops. All remaining hypotheses are not rejected.
A Complete Worked Example
Suppose a clinical trial produces five p-values from a prespecified family of hypothesis tests:
| Hypothesis | Raw p-value |
|---|---|
| \(H_1\) | 0.003 |
| \(H_2\) | 0.012 |
| \(H_3\) | 0.018 |
| \(H_4\) | 0.041 |
| \(H_5\) | 0.200 |
We want to control the family-wise error rate at:
There are:
hypotheses.
Step 1: Sort the P-Values
The p-values are already in ascending order:
The ordered p-values are therefore:
| Rank \(j\) | Ordered p-value | Original Hypothesis |
|---|---|---|
| 1 | 0.003 | \(H_1\) |
| 2 | 0.012 | \(H_2\) |
| 3 | 0.018 | \(H_3\) |
| 4 | 0.041 | \(H_4\) |
| 5 | 0.200 | \(H_5\) |
Step 2: Test the Smallest P-Value
For the first p-value, the Holm threshold is:
We compare:
Therefore, \(H_1\) is rejected.
Step 3: Test the Second P-Value
Because the first hypothesis was rejected, we continue. For the second ordered p-value, the denominator decreases from 5 to 4:
Now compare:
This is also significant under the Holm procedure. Therefore, \(H_2\) is rejected.
Step 4: Test the Third P-Value
For the third ordered p-value, the threshold is:
The comparison is:
The third p-value fails its Holm threshold.
Complete Step-Down Table
| Rank | p-value | Holm Threshold | Comparison | Decision |
|---|---|---|---|---|
| 1 | 0.003 | 0.01000 | 0.003 ≤ 0.01000 | Reject |
| 2 | 0.012 | 0.01250 | 0.012 ≤ 0.01250 | Reject |
| 3 | 0.018 | 0.01667 | 0.018 > 0.01667 | Stop |
| 4 | 0.041 | 0.02500 | Not evaluated after failure | Do not reject |
| 5 | 0.200 | 0.05000 | Not evaluated after failure | Do not reject |
The final conclusion is therefore:
Holm-Adjusted P-Values
Instead of reporting only the sequential significance decisions, one can report Holm-adjusted p-values.
For the ordered p-values, the basic Holm-adjusted quantity is:
To ensure that adjusted p-values preserve the required monotonicity, the adjusted values are obtained using the cumulative maximum:
with the adjusted p-value truncated at 1 if necessary.
Calculating the Example
For the first p-value:
For the second:
For the third:
For the fourth:
For the fifth:
These values are already nondecreasing, so the cumulative maximum does not change them.
| Hypothesis | Raw p-value | Holm-adjusted p-value | Adjusted Decision at 0.05 |
|---|---|---|---|
| \(H_1\) | 0.003 | 0.015 | Reject |
| \(H_2\) | 0.012 | 0.048 | Reject |
| \(H_3\) | 0.018 | 0.054 | Do not reject |
| \(H_4\) | 0.041 | 0.082 | Do not reject |
| \(H_5\) | 0.200 | 0.200 | Do not reject |
Why Holm Is More Powerful Than Bonferroni
The ordinary Bonferroni procedure would test every hypothesis against:
Under ordinary Bonferroni, the p-values 0.003 would be significant, but 0.012 would not be.
Holm, however, rejects the second p-value because after the smallest hypothesis has been rejected, the second threshold becomes:
Thus:
Holm can therefore reject hypotheses that ordinary Bonferroni would leave unrejected.
| Procedure | Threshold for p-value 1 | Threshold for p-value 2 | Result in Example |
|---|---|---|---|
| Bonferroni | 0.0100 | 0.0100 | Reject only \(H_1\) |
| Holm | 0.0100 | 0.0125 | Reject \(H_1\) and \(H_2\) |
Bonferroni vs. Holm
| Feature | Bonferroni | Holm-Bonferroni |
|---|---|---|
| Controls FWER | Yes | Yes |
| Requires independent tests | No | No |
| Sorts p-values | No | Yes |
| Uses step-down procedure | No | Yes |
| Thresholds change during testing | No | Yes |
| Generally more powerful | No | Yes |
| Simple adjusted p-values | Yes | Yes |
Holm vs. Hochberg
Holm and Hochberg are both sequential multiplicity procedures, but they operate in opposite directions.
Holm is step-down: it starts with the smallest p-value and moves upward.
Hochberg is step-up: it starts with the largest p-value and moves downward.
| Feature | Holm | Hochberg |
|---|---|---|
| Direction | Step-down | Step-up |
| Starts with | Smallest p-value | Largest p-value |
| FWER control | Yes | Yes under appropriate dependence conditions |
| General dependence robustness | Strong | More restrictive |
Holm is often an attractive default when robust FWER control is desired without relying on stronger assumptions about the dependence structure among tests.
Holm in Clinical Trials
Multiplicity is common in clinical trials. A study may contain multiple hypotheses involving:
- multiple doses;
- multiple endpoints;
- multiple treatment comparisons;
- different populations;
- different time points;
- hierarchical testing families; or
- other prespecified confirmatory comparisons.
The first question is not simply whether Holm can be calculated. The more important question is whether the hypotheses belong to the same multiplicity family.
A Simple Clinical Example
Suppose a Phase III trial evaluates an experimental treatment against placebo on three confirmatory endpoints:
| Endpoint | Raw p-value |
|---|---|
| Primary endpoint | 0.008 |
| Key secondary endpoint 1 | 0.021 |
| Key secondary endpoint 2 | 0.030 |
Suppose the family-wise error rate must be controlled at 5%. There are \(m=3\) hypotheses.
The Holm thresholds are:
The first comparison is:
so the primary endpoint is rejected.
The second comparison is:
so the second endpoint is also rejected.
The third comparison is:
Therefore, all three hypotheses are rejected by this particular Holm analysis.
Handling Ties in P-Values
Occasionally two or more hypotheses have identical p-values. For example:
The Holm procedure can still be applied after sorting. The hypotheses associated with tied p-values receive the corresponding ordered ranks according to the implementation.
The key requirement is that the resulting rejection decisions and adjusted p-values be calculated consistently.
Why the Procedure Must Stop After the First Failure
Suppose:
If the procedure continued independently to later p-values, it could potentially reject a larger p-value after failing to reject a smaller one. That would violate the intended step-down structure.
Instead, Holm imposes the rule:
This produces a rejection set that is ordered and coherent with the step-down procedure.
Common Mistakes
1. Dividing Every P-Value by the Same Number
That is essentially the ordinary Bonferroni approach, not the Holm step-down procedure.
2. Using the Original Hypothesis Order
Holm operates on the ordered p-values, not the order in which the hypotheses happen to appear in a table or protocol.
3. Continuing After a Failure
Once an ordered p-value fails its Holm threshold, subsequent hypotheses are not rejected.
4. Forgetting to Restore the Original Hypothesis Labels
The p-values are sorted for the calculation, but the final results must be mapped back to the corresponding original hypotheses or endpoints.
5. Treating Holm as a Post-Hoc License to Test Everything
Holm can control FWER for a defined family of hypotheses, but it does not remove the need to define an appropriate testing family and analysis strategy.
6. Reporting Only Raw P-Values
When multiplicity adjustment is part of the confirmatory analysis, the statistical report should make clear which multiplicity procedure was used and which conclusions are based on adjusted inference.
Implementation in R
In R, the base p.adjust() function provides Holm
adjustment directly.
p <- c(0.003, 0.012, 0.018, 0.041, 0.200) p.adjust(p, method = "holm")
For the worked example, the resulting adjusted p-values are:
0.015 0.048 0.054 0.082 0.200
A decision at the 5% family-wise level can then be obtained with:
p.adjust(p, method = "holm") <= 0.05
which returns:
TRUE TRUE FALSE FALSE FALSE
Implementation in SAS
In SAS, multiplicity adjustments can be requested through procedures that support
multiple-comparison adjustments. For example, in an appropriate model-based
analysis, the ADJUST=HOLM option can be used where
supported by the procedure.
proc glm data=analysis;
class treatment;
model endpoint = treatment;
lsmeans treatment / pdiff=all adjust=holm;
run;
The exact SAS syntax depends on the statistical procedure and estimand being analyzed. The multiplicity method should be selected in the context of the specific analysis rather than mechanically added to every model.
Holm-Adjusted P-Values vs. Sequential Testing
There are two equivalent ways to communicate the Holm procedure:
- compare ordered p-values sequentially with their Holm thresholds; or
- calculate Holm-adjusted p-values and compare them with \(\alpha\).
These approaches lead to the same rejection decisions when implemented correctly.
| Approach | Main Calculation | Typical Reporting Use |
|---|---|---|
| Step-down thresholds | \(p_{(j)}\le\alpha/(m-j+1)\) | Explaining the algorithm |
| Adjusted p-values | \(\max_{k\le j}(m-k+1)p_{(k)}\) | Tables and statistical reports |
Practical Holm Workflow
What Should Be Reported in a Statistical Analysis Plan?
When Holm is used to control multiplicity in a clinical trial, the statistical analysis plan should clearly describe the testing strategy.
A useful statistical section should specify:
- the hypotheses included in the multiplicity family;
- the endpoint or estimand corresponding to each hypothesis;
- the order of any prespecified hierarchical testing strategy, if applicable;
- the family-wise significance level;
- the multiplicity adjustment method;
- the statistical model or test producing each raw p-value;
- the rule for calculating adjusted p-values, if they will be reported;
- the treatment of missing or unevaluable data;
- the population used for the confirmatory analysis; and
- the method used to report and interpret multiplicity-adjusted conclusions.
Key Takeaways
| Concept | Takeaway |
|---|---|
| Purpose | Control the family-wise error rate when testing multiple hypotheses. |
| First step | Sort p-values from smallest to largest. |
| Threshold | The \(j\)-th ordered p-value is compared with \(\alpha/(m-j+1)\). |
| Direction | Holm is a step-down procedure. |
| Stopping rule | Stop at the first ordered p-value that fails its threshold. |
| Power | Generally more powerful than ordinary Bonferroni while retaining FWER control. |
| Adjusted p-values | Can be reported instead of, or alongside, sequential threshold comparisons. |
| Clinical use | Useful for multiplicity families in confirmatory clinical-trial analyses. |
Final Perspective
The Holm-Bonferroni procedure is one of the most useful general-purpose tools for controlling multiplicity.
Its logic is straightforward: sort the p-values, test the smallest one first, progressively relax the threshold after successful rejections, and stop at the first failure.
Compared with ordinary Bonferroni, Holm can recover additional statistically significant findings without sacrificing family-wise error control.
For clinical trials, however, the arithmetic is only one part of the problem. The hypotheses included in the family, the estimands, endpoint definitions, testing strategy, and interpretation of the resulting evidence should all be specified prospectively.