Breusch-Pagan Heteroskedasticity Test

Statistics · Hard · Free problem

Consider the OLS regression $y_t = x_t' \beta + u_t$, where the error variance may depend on observable variables: $\text{Var}(u_t) = \sigma^2 h(z_t' \gamma)$ with $h(z_t' \gamma) = 1 + z_t' \gamma$.

  1. Derive the Breusch-Pagan Lagrange multiplier (LM) test statistic using the auxiliary regression of squared OLS residuals $\hat{u}_t^2$ on $z_t$. Show that the statistic can be written in terms of the $R^2$ of the auxiliary regression.
  1. State the asymptotic distribution of the test statistic under $H_0: \gamma = 0$ (homoskedasticity).
  1. Discuss finite-sample adjustments and when the standard BP test may perform poorly.

Hints

  1. If the error variance is truly constant, what should happen when you regress squared residuals on other variables?
  2. The LM (score) test principle says: estimate only under the null, then check if the score function is far from zero. Here the score for $\gamma$ at $\gamma = 0$ reduces to the fit of the auxiliary regression.
  3. The test statistic simplifies to $nR^2$ from the auxiliary regression of $\hat{u}_t^2$ on $z_t$. Under the null, this has a $\chi^2(q)$ distribution where $q$ is the number of variance drivers.

Worked Solution

How to Think About It: OLS gives you consistent coefficient estimates even with heteroskedasticity, but your standard errors and test statistics are wrong. Before you reach for robust standard errors, it is worth testing whether heteroskedasticity is actually present. The Breusch-Pagan test is the simplest diagnostic: regress the squared residuals on the suspected drivers of variance and check if there is any explanatory power. If squared residuals are just noise, the $R^2$ of that regression should be near zero. The LM test formalizes this intuition.

Key Insight: Under homoskedasticity, $\hat{u}_t^2$ should be unrelated to any observable $z_t$. The BP statistic is simply $nR^2$ from the auxiliary regression of $\hat{u}_t^2$ on $z_t$, which follows $\chi^2(q)$ under the null.

The Method:

Step 1: Run the primary OLS regression. Estimate $y_t = x_t' \beta + u_t$ by OLS and obtain residuals $\hat{u}_t$.

Step 2: Construct the auxiliary regression. Under $H_0: \gamma = 0$, the variance is constant at $\sigma^2$. Breusch and Pagan consider the auxiliary regression:

$$\frac{\hat{u}_t^2}{\hat{\sigma}^2} = 1 + z_t' \gamma + \text{error}$$

where $\hat{\sigma}^2 = \frac{1}{n} \sum_{t=1}^n \hat{u}_t^2$. Equivalently, regress $\hat{u}_t^2$ on a constant and $z_t$.

Step 3: Derive the LM statistic. The score (Lagrange multiplier) test for $H_0: \gamma = 0$ in the normal linear heteroskedasticity model reduces to half the explained sum of squares from the auxiliary regression. This simplifies to:

$$\text{BP} = \frac{1}{2} \text{ESS}_{\text{aux}} = \frac{n \cdot R_{\text{aux}}^2}{1}$$

More precisely, let $R_{\text{aux}}^2$ be the $R^2$ from regressing $\hat{u}_t^2$ on $z_t$ (with intercept). Then:

$$\text{BP} = \frac{n \cdot R_{\text{aux}}^2}{1} \quad \text{(original BP form: } \text{ESS}_{\text{aux}} / 2\text{)}$$

The Koenker (1981) studentized version, which is more robust to non-normality, uses:

$$\text{BP}^{*} = n \cdot R_{\text{aux}}^2$$

where the auxiliary regression is simply $\hat{u}_t^2$ on a constant and $z_t$, with no division by $\hat{\sigma}^2$.

Step 4: Asymptotic distribution. Under $H_0$ and standard regularity conditions:

$$\text{BP} \xrightarrow{d} \chi^2(q)$$

where $q = \dim(z_t)$ is the number of variance regressors. Reject $H_0$ at level $\alpha$ if $\text{BP} > \chi^2_{1-\alpha}(q)$.

Practical Considerations:

  • Non-normality. The original BP test assumes normally distributed errors. If errors are heavy-tailed, the original form can over-reject. Use the Koenker studentized version ($n R^2$ without dividing residuals by $\hat{\sigma}^2$), which is robust to non-normality.
  • Functional form. BP tests for a specific linear form of heteroskedasticity ($h = 1 + z'\gamma$). White's test is a more general alternative that includes squares and cross-products of regressors.
  • Small samples. The $\chi^2$ approximation can be poor for small $n$. An $F$-test version of the auxiliary regression is often preferred: $F = \frac{R_{\text{aux}}^2 / q}{(1 - R_{\text{aux}}^2)/(n - q - 1)}$.
  • Choice of $z_t$. Typically $z_t$ includes the fitted values $\hat{y}_t$ or the original regressors $x_t$. Using $\hat{y}_t$ tests whether variance scales with the level of $y$; using $x_t$ tests which specific variables drive heteroskedasticity.

Answer: The BP test statistic is $nR^2$ from the auxiliary regression of squared OLS residuals on the suspected heteroskedasticity drivers $z_t$. Under $H_0$ (homoskedasticity), it follows $\chi^2(q)$ where $q = \dim(z_t)$. For robustness to non-normality, use the Koenker studentized version. In small samples, prefer the $F$-test form of the auxiliary regression.

Intuition

The Breusch-Pagan test captures a simple idea: if heteroskedasticity is present, then the size of the OLS residuals should be predictable from observable variables. Regressing squared residuals on those variables and checking the $R^2$ is the most natural way to formalize this. The $nR^2$ form makes it computationally trivial -- you just need two OLS regressions.

In practice, detecting heteroskedasticity matters because it affects inference, not estimation. OLS point estimates are still consistent under heteroskedasticity, but confidence intervals and hypothesis tests based on the usual standard errors are invalid. If the BP test rejects, you have two choices: use heteroskedasticity-robust (White) standard errors, or model the variance function explicitly (e.g., GLS or GARCH). The BP test helps you decide whether you need to bother.

Open the full interactive solver →