Tutorials › Econometrics (Graduate) › Few-Cluster Corrections and Wild Cluster Bootstrap

Panel Dependence and Inference · Tutorial 323 of 952

Few-Cluster Corrections and Wild Cluster Bootstrap

Learn why few clusters undermine conventional inference and how degrees-of-freedom adjustments and null-imposed wild cluster bootstrapping can improve it.

Advanced 11 min read

What You'll Learn

  • Explain why the number of independent clusters, not just the number of observations, governs cluster-robust inference.
  • Calculate a CR1 finite-cluster variance adjustment and use a cluster-based reference distribution.
  • Recognize the limits of a simple degrees-of-freedom correction and the role of leverage adjustments.
  • Construct a null-imposed wild cluster bootstrap test using cluster-level multipliers.
  • Interpret bootstrap p-values and obtain confidence intervals by inverting bootstrap tests.

Why a Large Panel Can Still Have Few Independent Units

Cluster-robust inference allows errors within a panel unit to be dependent, while relying on independence across units. That distinction makes the number of independent units central to inference. A panel with many observations over time but only a handful of units does not provide the same amount of independent information as a panel with many units. Conventional cluster-robust standard errors can then be too small, and tests that compare a statistic to a standard normal distribution can reject too often.

The issue is not that clustering has become inappropriate. Rather, the usual cluster-robust variance estimator is justified by an approximation that improves as the number of independent clusters grows. With few clusters, finite-sample adjustments and a wild cluster bootstrap can improve inference, but neither is a universal remedy. Cluster count, cluster sizes, leverage, and the design still matter.

Definition: Let \(g=1,\ldots,G\) index independent panel units (clusters), with observations \(t\) within unit \(g\). In a linear panel regression, errors may be dependent across observations within a unit but are assumed independent across units. Few-cluster inference refers to inference when \(G\) is too small for the usual large-\(G\) approximation to be reliable. There is no single threshold that determines when \(G\) is “few”; the design and the inferential task matter.

For concreteness, consider a regression with unit effects, \(y_{gt}=x_{gt}'\beta+\alpha_g+u_{gt}\). The parameter of interest may be one component of \(\beta\), or a stated linear combination of coefficients. Unit-clustered inference allows \(u_{gt}\) to be heteroskedastic and serially dependent within \(g\). It requires the independent-cluster assumption across \(g\), along with the conditions needed for the regression estimator itself to identify the target parameter. It does not by itself address dependence across units.

Diagnosing the Finite-Cluster Problem

A first diagnostic is to report \(G\), not just the total observation count. Also inspect cluster sizes and the regression’s leverage across clusters. A nominally moderate \(G\) can be less informative if a few units dominate the identifying variation. There is no diagnostic that proves a cluster-robust approximation is accurate; these checks help identify reasons for caution.

The usual unit-clustered sandwich estimator aggregates cluster-level score contributions. In schematic form, its unadjusted (“CR0”) covariance estimate is

$$ \widehat V_{\mathrm{CR0}} = \widehat A^{-1} \left(\sum_{g=1}^{G}\widehat s_g\widehat s_g'\right) \widehat A^{-1}, $$

where \(\widehat s_g\) is the contribution of cluster \(g\) to the regression score and \(\widehat A\) is the estimator’s bread matrix. Its large-sample justification treats the cluster contributions—not individual rows—as the independent units. When \(G\) is small, the estimated variance and the reference distribution for the test statistic can both be poorly approximated.

Worked Example: A Normal Approximation Can Change the Decision

Suppose a hypothetical panel has \(G=8\) independent units. For a coefficient measuring change in an outcome per one-unit increase in a predictor, the estimate is \(0.400\) outcome units and the reported unit-clustered standard error is \(0.180\) outcome units. Test \(H_0:\beta=0\) against a two-sided alternative.

The statistic is \(t=0.400/0.180=2.222\). Comparing it to a standard normal distribution gives a two-sided p-value of about \(0.026\), which would reject at \(\alpha=0.05\). A common finite-cluster convention instead compares it to a \(t\) distribution with \(G-1=7\) degrees of freedom. That p-value is approximately \(0.062\), so the test does not reject at \(0.05\).

The corresponding 95% interval under this convention is \(0.400\pm 2.365(0.180)=0.400\pm0.426\), or approximately \([-0.026,\,0.826]\) outcome units per predictor unit. The interval includes zero. The contrast does not establish that the \(t_7\) approximation is exact; it shows why ignoring the small cluster count can materially change an inference.

Degrees-of-Freedom Corrections

A common finite-cluster adjustment rescales CR0 to produce the CR1 covariance estimate. In a basic linear-regression convention, let \(N\) be the total number of observations and \(K\) the rank of the estimated regressor matrix, including any absorbed effects counted by the implementation. Then

$$ \widehat V_{\mathrm{CR1}} = \frac{G}{G-1}\frac{N-1}{N-K}\widehat V_{\mathrm{CR0}}. $$

The adjustment increases the covariance estimate when its multiplier exceeds one; the standard error is multiplied by the square root of that multiplier. Inference commonly uses a \(t_{G-1}\) reference distribution for a single coefficient. For a confidence level \(1-\alpha\), the corresponding interval is the estimate plus or minus the \(1-\alpha/2\) quantile of \(t_{G-1}\) times its adjusted standard error.

CR1 and the \(G-1\) reference degrees of freedom are practical corrections, not a guarantee of correctly sized tests. Implementations differ in how they count \(K\), particularly with absorbed fixed effects. Report the convention used. More refined leverage corrections, such as CR2, adjust cluster residual contributions for the effect of fitting the regression. They are often paired with a coefficient-specific Satterthwaite degrees-of-freedom approximation. That approximation need not equal \(G-1\), and can be substantially smaller when a few clusters are influential. These methods improve on a blanket correction in some settings, but still rely on the design and cannot manufacture independent information that the data do not contain.

Worked Example: Applying the CR1 Multiplier

Suppose hypothetical panel data have \(G=8\) units, \(N=80\) observations, and regressor-matrix rank \(K=5\). The CR0 standard error for an effect measured in outcome units per predictor unit is \(0.150\). Use the CR1 formula and the \(t_{G-1}\) reference convention.

The covariance multiplier is \(\frac{8}{7}\frac{79}{75}=1.204\) to three decimal places. Therefore the CR1 standard error is \(0.150\sqrt{1.204}=0.1646\) outcome units per predictor unit. If the estimated coefficient is \(0.320\), its statistic for \(H_0:\beta=0\) is \(0.320/0.1646=1.944\). With \(7\) degrees of freedom, the two-sided p-value is approximately \(0.093\), so this test does not reject at \(\alpha=0.05\).

This adjustment addresses a finite-sample scaling issue; it does not verify independence across units or remove the influence of high-leverage clusters. It should be treated as a convention to report and evaluate, not as evidence that every few-cluster problem has been solved.

The Wild Cluster Bootstrap

The wild cluster bootstrap generates a reference distribution by perturbing fitted residuals at the cluster level. Multiplying an entire cluster’s residual vector by one random weight preserves the pattern of dependence within that cluster. For a test of a coefficient, a standard approach imposes the null when forming bootstrap outcomes. This is important: the test should be calibrated under the null hypothesis being tested.

Definition: In a null-imposed wild cluster bootstrap, fit the regression subject to \(H_0\), obtaining fitted values \(\widetilde y_g\) and restricted residual vectors \(\widetilde u_g\). For bootstrap draw \(b\), draw one weight \(w_g^{(b)}\) per cluster and form \(y_g^{*(b)}=\widetilde y_g+w_g^{(b)}\widetilde u_g\). Refit the unrestricted model to these outcomes and calculate the same studentized test statistic as in the original sample. The bootstrap p-value is the proportion of bootstrap statistics at least as extreme in absolute value as the observed statistic.

Rademacher weights take values \(+1\) and \(-1\) with probability one-half each. Other cluster-level weight distributions, including a six-point distribution sometimes used with few clusters, are also used. The choice of weights and any leverage adjustment should be stated. In each draw, use a covariance estimate and studentization convention consistent with the intended test. With \(B\) random draws, a common Monte Carlo p-value calculation is \((1+\#\{|t^{*(b)}|\geq |t_{\mathrm{obs}}|\})/(B+1)\); the added one avoids reporting a zero p-value merely because no simulated draw exceeded the observed statistic.

The following sequence summarizes the test. The exact implementation can vary, so a report should specify the restricted fit, weights, studentization, and number of draws.

1
State the null and fit it.
Fit the regression subject to the coefficient restriction being tested, retaining nuisance parameters such as other slopes and unit effects as appropriate.
2
Generate cluster-level outcomes.
For each draw, assign one random multiplier to each unit and multiply that unit’s restricted residual vector by the same multiplier.
3
Refit and studentize.
Estimate the unrestricted regression for each bootstrap outcome and calculate its test statistic using the chosen cluster-robust standard error.
4
Compare with the observed statistic.
Count bootstrap statistics at least as extreme as the observed one, then calculate the Monte Carlo p-value and report the bootstrap design.

Worked Example: A Null-Imposed Bootstrap Test

Suppose a hypothetical panel contains \(G=6\) independent units. A regression estimates an effect of \(0.500\) outcome units per predictor unit with a CR1 standard error of \(0.250\), giving \(t_{\mathrm{obs}}=0.500/0.250=2.00\) for \(H_0:\beta=0\). A null-imposed wild cluster bootstrap uses \(B=999\) draws and the same two-sided studentized statistic. Suppose 87 draws have \(|t^{*(b)}|\geq2.00\).

The Monte Carlo p-value is \((1+87)/(999+1)=88/1000=0.088\). At \(\alpha=0.05\), this test does not reject the null. The p-value is the bootstrap procedure’s estimated tail probability under the imposed null, conditional on the data and the stated bootstrap design; it is not the probability that the null is true. This result also does not mean the effect is zero: it indicates that this test does not provide sufficient evidence to reject zero at the chosen level.

Confidence Intervals and Practical Limits

A bootstrap confidence interval can be obtained by inverting tests. For each candidate value \(\beta_0\), impose \(H_0:\beta=\beta_0\), run the null-imposed bootstrap test, and retain candidate values whose tests do not reject at level \(\alpha\). The retained set is the \(1-\alpha\) confidence set under that procedure. It may be asymmetric, and its endpoints need not match a symmetric interval based on a single standard error. The interval’s interpretation remains a repeated-sampling one: the procedure is designed to cover the fixed parameter at its stated rate under its assumptions, not to assign a probability to the parameter after observing these data.

Bootstrap inference is not automatically reliable whenever \(G\) is small. With very few clusters, its distribution can be discrete; cluster imbalance, high leverage, or a design in which identifying variation comes from only one or two units can undermine the approximation. The bootstrap must also reflect the actual independent sampling or assignment structure. It does not correct a misspecified regression, establish exogeneity, or make dependent clusters independent. When appropriate, report conventional and adjusted results as sensitivity analyses, explain the number and sizes of clusters, and state the bootstrap choices.

Worked Example: Inverting Tests for a Confidence Interval

Suppose a hypothetical wild cluster bootstrap test of \(H_0:\beta=\beta_0\) uses \(\alpha=0.05\). After testing candidate values over a fine grid, the bootstrap p-value is \(0.041\) at \(0.10\), \(0.073\) at \(0.15\), \(0.084\) at \(0.55\), and \(0.038\) at \(0.60\), in outcome units per predictor unit. The p-values decline below \(0.05\) outside the retained range, with the rejection boundary located between \(0.10\) and \(0.15\) on the lower end and between \(0.55\) and \(0.60\) on the upper end.

The nonrejected candidate values form an approximate 95% confidence set. Refining the grid or numerically finding the crossings gives endpoints near \(0.12\) and \(0.57\) outcome units per predictor unit. Those values are approximate because the candidate grid and Monte Carlo draws are finite. The interval is obtained by test inversion, not by interpreting any one bootstrap p-value as a probability that the parameter lies in a particular range.

Common Mistake

  • Wrong reasoning: “There are hundreds of panel observations, so a normal approximation must be accurate.”
  • Correction: Under unit clustering, the independent pieces are the \(G\) unit-level contributions. A large number of observations within a small number of units does not substitute for many independent units. Report \(G\), examine cluster influence, and consider finite-cluster corrections and a carefully specified wild cluster bootstrap.
  • Wrong reasoning: “The CR1 multiplier or bootstrap guarantees correct inference.”
  • Correction: These are methods for improving finite-sample inference under stated assumptions. Neither repairs a poor identifying design or dependence across supposedly independent clusters, and both can remain unreliable with extremely few or highly influential clusters.
Key takeaway: Few-cluster inference requires attention to how many independent units support the result, not merely how many rows the panel contains. Use and report a finite-cluster convention, consider leverage-sensitive corrections, and treat wild cluster bootstrap results as design-dependent inference rather than a mechanical guarantee.

Check Your Understanding

Try these questions before reviewing the explanations above.

  1. Why can a panel with many time observations still have an unreliable normal approximation when it contains few independent units?
  2. A model has \(G=10\) clusters. Under the common \(t_{G-1}\) convention, what reference degrees of freedom are used for a single-coefficient test?
  3. What is the purpose of imposing the null when generating outcomes for a wild cluster bootstrap test?
  4. In a wild cluster bootstrap, why is the same multiplier applied to every observation in a given unit?
  5. Explain why a CR1 correction does not guarantee reliable inference when one or two clusters dominate the identifying variation.
Clinical Biostats