Tutorials › Econometrics (Graduate) › Finite-Sample Scaling Corrections for Clustered Covariance

Clustered and Dependent Errors · Tutorial 127 of 952

Finite-Sample Scaling Corrections for Clustered Covariance

Learn how CR1 scales cluster-robust covariance estimates, how the common correction factors differ, and what finite-sample problems these scalar adjustments can and cannot address.

Advanced 11 min read

What You'll Learn

  • Define the unadjusted cluster-robust covariance estimator from cluster-level score contributions
  • Distinguish the cluster-count correction from the product correction involving observations and regressors
  • Calculate corrected covariance estimates and standard errors from hypothetical regression summaries
  • Explain why degrees-of-freedom scaling is motivated by finite-sample downward bias
  • Recognize why a scalar correction does not guarantee unbiased covariance estimates or reliable few-cluster inference
  • Avoid confusing covariance scaling with standard-error scaling or reference-distribution degrees of freedom

Why Scale a Cluster-Robust Covariance Estimate?

Cluster-robust covariance estimation allows observations within a cluster to have dependent errors while relying on independence across clusters. Its large-sample justification is primarily in the number of independent clusters, not simply the number of observations. With a modest number of clusters, the unadjusted estimator can be downward biased in finite samples, so reported standard errors may be too small. A common response is to multiply the entire covariance estimate by a degrees-of-freedom factor.

This is a finite-sample adjustment, not a change to the regression coefficients and not a guarantee of accurate inference. The adjustment is deliberately simple: it changes the overall scale, but it does not alter the relative contributions of clusters or correct every source of bias.

Model and the Unadjusted Cluster-Robust Estimator

Let \(g=1,\ldots,G\) index clusters, with \(n_g\) observations in cluster \(g\), and let \(N=\sum_{g=1}^G n_g\) be the total number of observations. Consider the linear regression model

$$ y_g=X_g\beta+u_g,\qquad g=1,\ldots,G. $$

Here \(y_g\) is the \(n_g\)-vector of outcomes, \(X_g\) is the \(n_g\times k\) regressor matrix, \(\beta\) is the \(k\)-vector of regression coefficients, and \(u_g\) is the vector of errors. The standard cluster-robust setup assumes that clusters are independent of one another, while allowing arbitrary dependence and heteroskedasticity among observations within a cluster. For the OLS estimator to have the intended interpretation, the regression also requires an appropriate zero-conditional-mean condition, such as \(E[u_g\mid X_g]=0\), and \(X'X\) must have full rank. The number of independent clusters must be sufficiently large for the usual cluster-asymptotic approximation to be persuasive.

Write \(X\) for the matrix stacking all \(X_g\), and let \(\hat{u}_g=y_g-X_g\hat{\beta}\) be the OLS residual vector in cluster \(g\). The estimated cluster score contribution is \(s_g=X_g'\hat{u}_g\). The unadjusted cluster-robust covariance estimator, often called CR0, is

$$ \widehat{V}_{\mathrm{CR0}} =(X'X)^{-1} \left(\sum_{g=1}^{G}s_gs_g'\right) (X'X)^{-1}. $$

The middle “meat” of the sandwich sums an outer product for each cluster, rather than for each observation. Thus, dependence within a cluster is retained in \(s_gs_g'\). The estimator is positive semidefinite, but in a finite sample it need not estimate the covariance without bias.

Definition: A finite-sample scaling correction multiplies the entire unadjusted cluster-robust covariance estimate by a scalar factor \(c\). The corrected estimate is \(c\widehat{V}_{\mathrm{CR0}}\). Its standard errors are obtained from the square roots of the corrected diagonal entries.

Common CR1 Scaling Factors

The term “CR1” is not used identically by every software package or reference. Two common choices make the degrees-of-freedom adjustments explicit:

$$ \widehat{V}_{\mathrm{CR1,G}} =\frac{G}{G-1}\widehat{V}_{\mathrm{CR0}}, \qquad \widehat{V}_{\mathrm{CR1,product}} =\frac{G}{G-1}\frac{N-1}{N-k}\widehat{V}_{\mathrm{CR0}}. $$

The first factor adjusts for the number of independent clusters. The product version includes that same cluster-count factor and also the familiar observation-and-regressor degrees-of-freedom ratio \((N-1)/(N-k)\). Some conventions use “CR1” for the cluster-only factor; others use it for the product correction. A careful report therefore gives the factor itself, rather than relying only on the label.

The factors are greater than one when \(G>1\) and \(N>k\), so they increase the estimated covariance relative to CR0. They do not change \(\hat{\beta}\). If a covariance estimate is multiplied by \(c\), a standard error is multiplied by \(\sqrt{c}\), not by \(c\). Nor does multiplying the covariance automatically determine the reference distribution or its degrees of freedom for a test.

Why the Cluster-Count Factor Is Used

A basic justification comes from estimating a variance using centered, independent cluster contributions. Suppose, as a simplified illustration, that \(G\) independent scalar cluster contributions \(z_g\) have a common mean and variance \(\omega\). Their centered sum of squares is \(\sum_g(z_g-\bar{z})^2\). Since estimating \(\bar{z}\) uses one degree of freedom, its expectation is \((G-1)\omega\), while the uncentered sum of \(G\) squared deviations from the true mean has expectation \(G\omega\). Scaling the centered sum by \(G/(G-1)\) corrects this specific loss in expectation.

The corresponding intuition in regression is that fitted residuals and estimated cluster scores are constrained by the estimation of \(\beta\). In OLS, the cluster scores satisfy \(\sum_g s_g=X'\hat{u}=0\). Using estimated scores in the meat can therefore produce a downward finite-sample tendency under simplified conditions. The cluster-count factor is intended to counteract part of that tendency.

$$ E\left[\sum_{g=1}^{G}(z_g-\bar{z})^2\right]=(G-1)\omega \quad\Longrightarrow\quad \frac{G}{G-1}E\left[\sum_{g=1}^{G}(z_g-\bar{z})^2\right]=G\omega. $$

This is motivation, not a proof that CR1 is unbiased in a general regression. Cluster scores can have different variances, cluster sizes can differ, regressors can have substantial cluster-level leverage, and the fitted-score dependence is more complicated than the simplified scalar calculation. The extra \((N-1)/(N-k)\) term resembles the usual regression degrees-of-freedom adjustment, but it too is a scalar approximation: it does not directly account for which clusters have the most influence.

Worked Example: CR0 in a Small Intercept-Only Regression

Suppose a hypothetical sample has four independent clusters, each containing two observations. Fit an intercept-only regression to the eight outcomes \(1,1,-0.5,-0.5,1.5,1.5,-2,-2\). Calculate the unadjusted variance of the estimated intercept and apply the cluster-count correction.

The sample mean is zero because the outcomes sum to zero, so the residuals equal the listed outcomes. The cluster residual sums are \(s_1=2\), \(s_2=-1\), \(s_3=3\), and \(s_4=-4\); they sum to zero, as required by the intercept-only OLS normal equation. Here \(X'X=N=8\), so the CR0 variance is

$$ \widehat{V}_{\mathrm{CR0}} =\frac{2^2+(-1)^2+3^2+(-4)^2}{8^2} =\frac{30}{64} =0.4688. $$

The cluster-count factor is \(G/(G-1)=4/3\). Therefore,

$$ \widehat{V}_{\mathrm{CR1,G}} =\frac{4}{3}(0.46875) =0.6250. $$

The CR0 standard error is \(\sqrt{0.46875}=0.6847\), and the cluster-adjusted standard error is \(\sqrt{0.6250}=0.7906\), in the outcome units. For the product correction, \(N=8\) and \(k=1\), so \((N-1)/(N-k)=7/7=1\). In this particular example, the product correction and the cluster-only correction coincide.

Applying Both Factors to a Regression Summary

In a general regression, the scalar correction applies equally to every entry of the estimated covariance matrix. If the CR0 variance for a particular coefficient has already been computed from the cluster score contributions and the regression “bread,” the remaining arithmetic is simply multiplication by the chosen factor. The next example illustrates why naming the factor matters.

Worked Example: Comparing the Two CR1 Conventions

A hypothetical regression has \(N=20\) observations in \(G=5\) independent clusters and \(k=3\) regressors, including the intercept. For one coefficient, suppose the cluster-level contributions to its CR0 variance are \(0.10,-0.05,0.08,-0.07,-0.06\). These contributions sum to zero, and their squared sum is the CR0 variance.

First calculate the unadjusted variance:

$$ \widehat{V}_{\mathrm{CR0}} =(0.10)^2+(-0.05)^2+(0.08)^2+(-0.07)^2+(-0.06)^2 =0.0274. $$

The cluster-only factor is \(5/(5-1)=1.25\), giving

$$ \widehat{V}_{\mathrm{CR1,G}}=1.25(0.0274)=0.03425, \qquad SE_{\mathrm{CR1,G}}=\sqrt{0.03425}=0.1851. $$

For the product correction, the additional factor is \((N-1)/(N-k)=19/17=1.1176\), so the full factor is

$$ \frac{5}{4}\frac{19}{17}=1.3971. $$

Thus,

$$ \widehat{V}_{\mathrm{CR1,product}} =1.3971(0.0274)=0.03828, \qquad SE_{\mathrm{CR1,product}}=\sqrt{0.03828}=0.1957. $$

Both corrections increase the variance and standard error, but they do not give the same result. The product-corrected standard error is about \(0.1957\) coefficient units. Reporting “CR1” alone would not reveal which calculation was used.

What the Adjustment Does to Inference

A larger corrected covariance generally means less extreme test statistics and wider intervals, all else equal. For a coefficient estimate \(\hat{\beta}_j\) tested against a hypothesized value \(\beta_{j,0}\), the usual statistic has the form

$$ t=\frac{\hat{\beta}_j-\beta_{j,0}}{\sqrt{\widehat{V}_{jj}}}. $$

Replacing \(\widehat{V}_{jj}\) by \(c\widehat{V}_{jj}\) divides this statistic by \(\sqrt{c}\). This changes the statistic, but the scaling factor alone does not say what reference distribution or degrees of freedom should be used. In particular, the covariance multiplier \(G/(G-1)\) is not itself a rule that the test must use \(G-1\) degrees of freedom.

Worked Example: Effect on a Coefficient Test

Use the product-corrected standard error from the preceding hypothetical regression. Suppose the estimated coefficient is \(0.50\) units, and the null hypothesis is \(H_0:\beta_j=0\). The unadjusted standard error is \(\sqrt{0.0274}=0.1655\), while the product-corrected standard error is \(0.1957\).

The two corresponding absolute test statistics are

$$ |t_{\mathrm{CR0}}|=\frac{0.50}{0.1655}=3.021, \qquad |t_{\mathrm{CR1,product}}|=\frac{0.50}{0.1957}=2.555. $$

The corrected covariance therefore makes the statistic less extreme. As an illustration only, if both statistics were compared with a \(t\) reference distribution having \(G-1=4\) degrees of freedom, the critical value for a two-sided 5% test would be about \(2.776\). The unadjusted statistic exceeds that value, whereas the product-corrected statistic does not. This comparison shows that scaling can matter for a conclusion; it does not establish that this particular reference distribution is appropriate for every clustered design.

Limitations and Common Mistakes

CR1 is a broad scalar adjustment. It cannot distinguish between a design in which all clusters contribute similarly and one in which a small number of high-leverage clusters dominate the estimate. It also does not create additional independent information: a large \(N\) can coexist with a small \(G\). If there are very few clusters, multiplying CR0 by a degrees-of-freedom factor does not, by itself, make normal or \(t\)-based approximations reliable.

A common mistake is to reason, “The covariance is multiplied by \(G/(G-1)\), so the standard error is multiplied by \(G/(G-1)\) too.” That is incorrect because standard errors are square roots of variances. The correct multiplier for a standard error is \(\sqrt{G/(G-1)}\). Another mistake is to call every finite-sample correction “CR1” without stating its formula. Specify whether the factor is \(G/(G-1)\) alone or the product \(G/(G-1)\times(N-1)/(N-k)\), and state how inference is conducted separately.

Key takeaway: CR1 corrections multiply the unadjusted cluster-robust covariance by a degrees-of-freedom factor to reduce a common finite-sample downward bias. They are useful adjustments, not universal bias corrections: they do not change the regression coefficients, account directly for cluster-specific leverage, or guarantee reliable inference with few clusters.

Check Your Understanding

Answer each question using the definitions and conventions in this tutorial.

  1. For \(G=8\), what is the cluster-count factor \(G/(G-1)\)?
  2. A regression has \(N=40\), \(G=5\), and \(k=4\). Calculate the product correction factor \(G/(G-1)\times(N-1)/(N-k)\).
  3. If a covariance diagonal entry is multiplied by \(1.44\), by what factor does its standard error change?
  4. Why does the cluster-count factor have a degrees-of-freedom motivation, and why does that motivation not prove unbiasedness for every cluster-robust regression?
  5. Does applying \(G/(G-1)\) automatically prescribe the reference distribution for a coefficient test? Explain.
Clinical Biostats