Statistical Tests Open Access

Breusch-Pagan Test

Diagram of a residuals-versus-fitted-values scatterplot showing a funnel-shaped spread that widens as fitted values increase, illustrating the heteroskedasticity the Breusch-Pagan Test is designed to detect.
Figure 1. The Breusch-Pagan Test checks whether the spread of regression residuals grows or shrinks systematically with the predictors, detecting the funnel-shaped pattern that constant-variance regression assumes away.

Introduction

The Breusch-Pagan Test checks whether the residuals from a regression model have constant variance-a property called homoskedasticity-or whether the spread of the residuals changes systematically depending on the predictors, a problem called heteroskedasticity. If you are asking questions like "do my prediction errors get bigger for larger houses?", "does income prediction error widen at higher income levels?", or "is the scatter of my residuals fanning out as fitted values increase?"-this is usually the test you are looking for.

By the end of this article you will be able to state exactly when a Breusch-Pagan Test applies, compute the statistic completely by hand on two different worked examples, understand the Koenker studentized version used by default in most software, interpret the result correctly, know what to do if heteroskedasticity is detected, and run the same test in one line of Python with statsmodels.

What Is the Breusch-Pagan Test?

Ordinary least squares regression assumes the errors have constant variance across all values of the predictors. In practice this often fails: prediction errors for expensive houses tend to be larger in absolute terms than for cheap ones, and income prediction errors often widen for higher earners. This "fanning out" pattern-visible as a funnel shape in a residuals-versus-fitted-values plot-is exactly what the Breusch-Pagan Test is built to detect statistically, rather than relying on eyeballing a scatterplot.

The test works by asking a clever question: can the squared residuals themselves be predicted from the regressors? If residual variance really is constant, then the squared residuals should show no systematic relationship with the predictors, and a regression of squared residuals on those predictors should explain essentially none of the variation. If residual variance changes with the predictors, that auxiliary regression will pick up a real relationship, which the test statistic converts into a formal chi-square-based decision.

It exists because heteroskedasticity doesn't bias the regression coefficients themselves, but it does make the standard errors reported by ordinary least squares unreliable-often making significance tests look more (or less) confident than they should be. Catching this before trusting a model's p-values and confidence intervals is the entire purpose of running a Breusch-Pagan Test as a standard regression diagnostic.

Core idea in one line: square the residuals, regress them on the original predictors, and check whether that auxiliary regression explains a meaningful amount of variation-if it does, the residual spread depends on the predictors, and that's heteroskedasticity.

When to Use It

Use a Breusch-Pagan Test after fitting any ordinary least squares regression whenever you want to formally check the constant-variance assumption before trusting the model's standard errors, t-tests, or confidence intervals. The key requirement: you already have a fitted linear regression, and you suspect (or simply want to routinely verify) that the spread of the residuals might depend on one or more of the predictors.

ScenarioRegressionWhat's Being Checked
House price modelingSale price vs square footage, location, ageWhether price residuals widen for larger, pricier homes
Income/wage regressionIncome vs education, experience, occupationWhether prediction error grows at higher income levels
Household spending studiesSpending vs income, family sizeWhether spending residuals scale with income
Manufacturing/quality controlOutput defects vs batch size, machine settingsWhether variability depends on batch size
Any routine OLS diagnostic checkAny linear regressionWhether standard OLS standard errors can be trusted
A routine check, not just a special-case test. Because heteroskedasticity is common in real-world data-especially anything involving money, size, or counts-many analysts run the Breusch-Pagan Test as a standard part of every regression workflow, alongside checks like the Durbin-Watson Test for autocorrelation.

Key Assumptions

  • Correctly specified mean model: the original regression must be reasonably well specified-omitted variables or the wrong functional form can produce residual patterns that mimic heteroskedasticity without actually being a variance problem.
  • Linear relationship between variance and predictors (classical version): the original Breusch-Pagan auxiliary regression assumes the error variance is a linear function of the predictors; nonlinear variance patterns may require the White Test instead.
  • Normally distributed errors (classical version only): the original 1979 statistic assumes normal errors-see the Koenker Studentized Version for the standard fix when this assumption is doubtful.
  • Independent observations: the auxiliary regression on squared residuals assumes observations are independent of one another, just like the original regression.
  • Large-sample approximation: the \( LM = nR^2 \) statistic follows a chi-square distribution asymptotically-with very small samples the approximation may be unreliable.

Hypotheses

The Breusch-Pagan Test formally tests whether the error variance depends on the predictors:

  • Null Hypothesis (\( H_0 \)): the error variance is constant (homoskedastic)-it does not depend on any of the predictors.
  • Alternative Hypothesis (\( H_1 \)): the error variance depends on at least one of the predictors (heteroskedastic).

(Formally, if the original model is \( y_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_k x_{ki} + \varepsilon_i \) with \( \text{Var}(\varepsilon_i) = \sigma_i^2 \), the null hypothesis states \( \sigma_i^2 = \sigma^2 \) for every observation \( i \), while the alternative allows \( \sigma_i^2 \) to vary systematically with the \( x \) variables.)

The Formula, Explained

Start with a fitted regression \( y_i = \beta_0 + \beta_1 x_{1i} + \cdots + \beta_k x_{ki} + \varepsilon_i \) and its residuals \( e_i = y_i - \hat{y}_i \). The Breusch-Pagan procedure follows three steps:

Step 1. Square the residuals to get \( e_i^2 \), an estimate of the local error variance at each observation.

Step 2. Run the auxiliary regression of the squared residuals on the original predictors:

\[ e_i^2 = \gamma_0 + \gamma_1 x_{1i} + \cdots + \gamma_k x_{ki} + u_i \]

Step 3. Compute the test statistic from the \( R^2 \) of that auxiliary regression:

\[ LM = n \cdot R^2_{\text{aux}} \]

Under \( H_0 \) (constant variance), this statistic is asymptotically distributed as a chi-square distribution with degrees of freedom equal to the number of predictors \( k \) in the auxiliary regression:

\[ LM \;\xrightarrow{d}\; \chi^2_k \quad \text{under } H_0 \]

Intuitively: if variance really is constant, the predictors shouldn't be able to explain the squared residuals at all, so \( R^2_{\text{aux}} \) should be close to zero and \( LM \) small. If variance depends on the predictors, the auxiliary regression picks up real explanatory power, inflating \( R^2_{\text{aux}} \) and therefore \( LM \).

Why this is a Score (Lagrange Multiplier) Test. The Breusch-Pagan statistic is a classic example of a Score Test (Lagrange Multiplier Test): it only ever needs the model fitted under \( H_0 \) (constant variance)-the original regression's residuals-and never has to estimate a full model with variance explicitly depending on the predictors.

The Koenker Studentized Version

The original 1979 Breusch-Pagan statistic assumes the regression errors \( \varepsilon_i \) are normally distributed. When that assumption fails-heavy-tailed or skewed errors are common in real data-the classical statistic can reject the null hypothesis too often, even when the variance truly is constant.

Koenker (1981) proposed a simple fix: instead of regressing the raw squared residuals \( e_i^2 \) on the predictors, first rescale them by their overall sample variance:

\[ LM_{\text{Koenker}} = n \cdot R^2_{\text{aux}}, \quad \text{using } \frac{e_i^2}{\overline{e^2}} \text{ in place of } e_i^2 \]

where \( \overline{e^2} = \frac{1}{n}\sum e_i^2 \). This studentized version has the same asymptotic \( \chi^2_k \) distribution as the original, but remains valid even when the normality assumption is violated-which is why it is the version most commonly reported by statistical software, including the default output of statsmodels' het_breuschpagan function.

In practice, just use the studentized version. Unless you have a specific reason to compute the original 1979 statistic (e.g., replicating an older paper), the Koenker studentized version is the safer default and requires no extra effort-most software computes it automatically.

Worked Example 1: A Small Numerical Example by Hand

Suppose a simple regression of \( y \) on a single predictor \( x \) for 6 observations produces the following fitted values and residuals:

Observation\( x_i \)Residual \( e_i \)Squared residual \( e_i^2 \)
110.20.04
22-0.50.25
330.80.64
44-1.52.25
552.04.00
66-2.87.84

Step 1: Run the auxiliary regression

Regress the squared residuals \( e_i^2 \) on \( x_i \). Using the standard least-squares formulas with \( \bar{x} = 3.5 \), \( \overline{e^2} = 2.5033 \):

\[ \sum (x_i - \bar{x})(e_i^2 - \overline{e^2}) = 24.605, \qquad \sum (x_i - \bar{x})^2 = 17.5 \] \[ \hat{\gamma}_1 = \frac{24.605}{17.5} \approx 1.406, \qquad \hat{\gamma}_0 = 2.5033 - 1.406 \times 3.5 \approx -2.418 \]

Step 2: Compute \( R^2 \) of the auxiliary regression

Using the fitted auxiliary values \( \hat{e_i^2} = \hat{\gamma}_0 + \hat{\gamma}_1 x_i \) to get the explained sum of squares, the auxiliary regression yields:

\[ R^2_{\text{aux}} \approx 0.720 \]

Step 3: Compute the Breusch-Pagan statistic

\[ LM = n \cdot R^2_{\text{aux}} = 6 \times 0.720 = 4.32 \]

Step 4: Compare against the critical value

With \( k = 1 \) predictor, \( LM \) is compared against a \( \chi^2_1 \) distribution. The critical value at \( \alpha = 0.05 \) is \( \chi^2_{1,0.05} = 3.841 \). Since \( LM = 4.32 > 3.841 \), we reject \( H_0 \): the residual variance is not constant-it grows systematically with \( x \), exactly as the squared residuals in the table suggest (they climb steadily from 0.04 to 7.84).

Worked Example 2: Household Spending Regression

An analyst regresses monthly household spending ($1,000s) on household income ($1,000s) for 8 households, suspecting that spending prediction error might widen at higher income levels-a classic heteroskedasticity concern in household budget studies.

HouseholdIncome \( x_i \)Residual \( e_i \)Squared residual \( e_i^2 \)
1200.30.09
230-0.60.36
3400.90.81
450-1.21.44
5601.83.24
670-2.56.25
7803.19.61
890-3.814.44

Step 1: Run the auxiliary regression

With \( \bar{x} = 55 \) and \( \overline{e^2} = 4.53 \):

\[ \sum (x_i - \bar{x})(e_i^2 - \overline{e^2}) \approx 588.6, \qquad \sum (x_i - \bar{x})^2 = 4200 \] \[ \hat{\gamma}_1 = \frac{588.6}{4200} \approx 0.140, \qquad \hat{\gamma}_0 = 4.53 - 0.140 \times 55 \approx -3.17 \]

Step 2: Compute \( R^2 \) of the auxiliary regression

\[ R^2_{\text{aux}} \approx 0.831 \]

Step 3: Compute the Breusch-Pagan statistic

\[ LM = 8 \times 0.831 = 6.648 \]

Step 4: Compare against the critical value

With \( k = 1 \) predictor, the critical value at \( \alpha = 0.05 \) is again \( 3.841 \). Since \( LM = 6.648 > 3.841 \), we reject \( H_0 \): spending prediction errors grow systematically with household income. In fact, the p-value here is approximately \( 0.0099 \), well below 0.05, giving strong evidence of heteroskedasticity-a common and expected finding in budget-share and spending regressions, where higher-income households have far more discretionary room to deviate from a simple linear prediction.

Python Example

statsmodels computes the (Koenker studentized) Breusch-Pagan Test directly from a fitted OLS model with het_breuschpagan:

import numpy as np
import statsmodels.api as sm
from statsmodels.stats.diagnostic import het_breuschpagan

# Worked Example 2 data: household spending vs income
income = np.array([20, 30, 40, 50, 60, 70, 80, 90])
spending = np.array([8.3, 11.4, 15.9, 18.8, 24.8, 26.5, 34.1, 35.2])

X = sm.add_constant(income)
model = sm.OLS(spending, X).fit()

lm_stat, lm_pvalue, f_stat, f_pvalue = het_breuschpagan(model.resid, model.model.exog)

print(f"LM statistic: {lm_stat:.3f}")
print(f"LM p-value: {lm_pvalue:.4f}")
print(f"F statistic: {f_stat:.3f}")
print(f"F p-value: {f_pvalue:.4f}")

Output:

LM statistic: 6.648
LM p-value: 0.0099
F statistic: 13.152
F p-value: 0.0112

This matches Worked Example 2 closely (small differences come from Koenker's studentization adjustment versus the raw hand calculation). het_breuschpagan also returns an equivalent F-test version of the same idea, which some analysts prefer in small samples.

Getting Robust Standard Errors as a Fix

If the test detects heteroskedasticity, switching to heteroskedasticity-robust standard errors is often the simplest remedy-no need to change the model itself:

# Refit with heteroskedasticity-consistent (HC3) standard errors
robust_model = sm.OLS(spending, X).fit(cov_type='HC3')
print(robust_model.summary())
# Coefficients are identical to the original fit;
# only the standard errors, t-values, and p-values change.

How to Interpret Results

The significance level \( \alpha = 0.05 \) is the standard threshold used to decide whether heteroskedasticity is "statistically detected."

ConditionInterpretation
\( p < 0.05 \)Reject \( H_0 \)-heteroskedasticity is present; residual variance depends on the predictors.
\( p \geq 0.05 \)Fail to reject \( H_0 \)-not enough evidence against constant variance; homoskedasticity remains a reasonable assumption.
Note. Detecting heteroskedasticity does not mean the regression coefficients are wrong-under standard assumptions, OLS coefficients remain unbiased and consistent regardless. What breaks down is the efficiency of the estimates and the reliability of the standard errors, which is why the fix (see What to Do If Heteroskedasticity Is Detected) usually targets inference rather than the coefficients themselves.

Checking Assumptions in Practice

  • Plot residuals against fitted values first: a simple scatterplot of \( e_i \) versus \( \hat{y}_i \) often reveals the funnel-shaped pattern visually before running any formal test-both worked examples above would show this pattern clearly.
  • Check the mean model is reasonably well specified: omitted variables or an incorrect functional form (e.g., a missing quadratic term) can create residual patterns that look like heteroskedasticity but are really a specification problem.
  • Consider the normality of errors: if the residuals look strongly non-normal (heavy tails, skew), prefer the Koenker studentized version, which most software reports by default anyway.
  • Watch for nonlinear variance patterns: if variance depends on the predictors in a nonlinear way (e.g., a U-shape), the classical Breusch-Pagan auxiliary regression may miss it-the White Test is more flexible in that case.
  • Sample size: the \( LM = nR^2 \) chi-square approximation is asymptotic; with very small samples, consider the F-test version that het_breuschpagan also returns, or a bootstrap approach.

What to Do If Heteroskedasticity Is Detected

  • Use heteroskedasticity-robust standard errors: the most common and simplest fix-refit with White or HC3 standard errors, which keep the same coefficient estimates but correct the standard errors and resulting inference, as shown in the Python Example.
  • Apply Weighted Least Squares (WLS): if the variance pattern is well understood (e.g., variance proportional to \( x \) or to the fitted values), WLS can produce more efficient coefficient estimates than plain OLS with robust standard errors.
  • Transform the outcome variable: a log transform of the dependent variable often stabilizes variance in money- or count-based outcomes, such as income, spending, or sales.
  • Re-examine the model specification: since heteroskedasticity can be a symptom of a missing predictor or incorrect functional form, revisit whether the mean model itself is correctly specified before assuming the variance structure alone is the issue.
  • Consider a Generalized Linear Model: for outcomes with a naturally non-constant variance (e.g., counts, proportions), a GLM with an appropriate variance function may be a better fit than forcing OLS to work with a correction.

Advantages

  • Simple to compute-just one extra ("auxiliary") regression using quantities already available after any regression fit.
  • Only requires the model fitted under \( H_0 \) (constant variance)-never needs to estimate a full model where variance explicitly depends on the predictors, as it is a Score Test by construction.
  • Widely implemented and reported automatically by most statistical software as a routine regression diagnostic.
  • The Koenker studentized version remains valid even when regression errors are not normally distributed, making it robust for real-world data.
  • Directly identifies which predictors are associated with the changing variance, since the auxiliary regression coefficients themselves are informative, not just the overall test statistic.

Limitations

  • The classical (non-studentized) version assumes normally distributed errors-use the Koenker studentized version when that is doubtful.
  • Primarily detects heteroskedasticity that is linearly related to the predictors; more complex or nonlinear variance patterns may require the White Test.
  • Like other chi-square-based tests, the \( \chi^2_k \) reference distribution is asymptotic-can be less reliable in very small samples.
  • Sensitive to mean-model misspecification-an omitted variable or wrong functional form can trigger a significant result that isn't really about variance at all.
  • Does not, by itself, tell you how to fix the heteroskedasticity-only that it is present; see What to Do If Heteroskedasticity Is Detected.

When NOT to Use It

  • White Test: use instead when you suspect nonlinear heteroskedasticity patterns or possible functional-form misspecification, since its auxiliary regression includes squared terms and cross-products of the predictors.
  • Goldfeld-Quandt Test: use instead when you have a specific ordering variable in mind (e.g., you suspect variance differs cleanly between a low-value group and a high-value group) and prefer a test based on comparing two subsample variances directly.
  • Levene's Test or Bartlett's Test: use instead when comparing variances across a small number of clearly defined groups rather than as a function of continuous regression predictors.
  • Visual inspection alone: for quick, exploratory work, a residuals-versus-fitted-values plot can be enough-formal testing matters most when you need a defensible, reportable decision.

Breusch-Pagan vs White vs Goldfeld-Quandt

17.1 Breusch-Pagan Test vs White Test

AspectBreusch-Pagan TestWhite Test
Auxiliary regression predictorsOriginal predictors only (linear terms)Original predictors plus their squares and cross-products
Patterns detectedLinear heteroskedasticity in the predictorsBroader-including nonlinear and interaction-driven patterns
Degrees of freedom usedFewer-just the number of predictorsMore-grows quickly with many predictors
Also sensitive toPrimarily variance misspecificationBoth heteroskedasticity and some functional-form misspecification

17.2 Breusch-Pagan Test vs Goldfeld-Quandt Test

AspectBreusch-Pagan TestGoldfeld-Quandt Test
ApproachRegress squared residuals on predictorsCompare residual variances between two ordered subsamples
Requires an ordering variableNo-uses all predictors directlyYes-data must be sortable by a suspected variance driver
Test statisticChi-square (\( LM = nR^2 \))F-statistic (ratio of two subsample residual variances)
Best suited forGeneral-purpose variance checks across all predictorsA specific, known suspected split point (e.g., before/after a threshold)

17.3 Breusch-Pagan Test vs Durbin-Watson Test

AspectBreusch-Pagan TestDurbin-Watson Test
What it detectsNon-constant residual variance (heteroskedasticity)Serial correlation between consecutive residuals (autocorrelation)
Requires ordered dataNoYes-observations must be in a meaningful sequence
Typical remedy if significantRobust standard errors, WLS, or a variance-stabilizing transformHAC standard errors, GLS, or an explicit time-series model

Common Misconceptions

  • "Heteroskedasticity means my regression coefficients are wrong." Not true-under standard assumptions, OLS coefficients remain unbiased and consistent; only the standard errors become unreliable, as discussed in How to Interpret Results.
  • "The Breusch-Pagan Test and the White Test always give the same answer." Not necessarily-the White Test's richer auxiliary regression can detect patterns the standard Breusch-Pagan Test misses, and vice versa in very small samples where White loses more degrees of freedom.
  • "A significant Breusch-Pagan result always means the data needs a Weighted Least Squares fix." Robust standard errors are usually the simpler, more common remedy-see What to Do If Heteroskedasticity Is Detected for the full range of options.
  • "A non-significant Breusch-Pagan result proves variance is exactly constant." Failing to reject \( H_0 \) only means there was not enough evidence against constant variance with this sample-it does not prove homoskedasticity holds exactly.
  • "The Breusch-Pagan Test can also detect autocorrelation." It cannot-it is specifically about variance, not serial correlation; for that, use the Durbin-Watson Test instead.

Interview Questions

  1. Describe the three steps of the Breusch-Pagan procedure, from the original regression to the final test statistic.
  2. Why does the Breusch-Pagan Test use \( LM = nR^2 \) from an auxiliary regression rather than testing the original regression's residuals directly?
  3. Explain why the Breusch-Pagan Test is a special case of the Score (Lagrange Multiplier) Test framework.
  4. What problem does the Koenker studentized version solve, and why is it the default in most modern software?
  5. Does heteroskedasticity bias the OLS coefficient estimates, the standard errors, or both? Explain why.
  6. How does the White Test's auxiliary regression differ from the Breusch-Pagan Test's, and what extra patterns can it detect as a result?
  7. If a Breusch-Pagan Test is significant, what practical remedies would you consider, and how would you choose between them?
  8. Why might a significant Breusch-Pagan result actually reflect a misspecified mean model rather than a genuine variance problem?
  9. Compare the Breusch-Pagan Test to the Goldfeld-Quandt Test-when would you prefer one over the other?
  10. How would you interpret the individual coefficients of the auxiliary regression itself, beyond just the overall test statistic?

Frequently Asked Questions

  • The Breusch-Pagan Test checks whether the variance of the residuals from a fitted regression model stays constant (homoskedastic) or instead changes systematically as a function of the predictors (heteroskedastic)-for example, whether income prediction errors get larger for higher-income households, or whether housing price residuals widen for larger homes.
  • Fit the original regression and obtain its residuals. Square the residuals, then regress the squared residuals on the same predictors used in the original model, in what is called an auxiliary regression. The test statistic is LM = n * R-squared, where n is the sample size and R-squared comes from that auxiliary regression, following a chi-square distribution with degrees of freedom equal to the number of predictors under the null hypothesis of constant variance.
  • If the p-value is below your chosen significance level (commonly alpha = 0.05), you reject the null hypothesis of constant variance and conclude heteroskedasticity is present-the spread of the residuals depends systematically on the predictors. If the p-value is at or above alpha, there is not enough evidence against constant variance, and the homoskedasticity assumption is reasonable to keep.
  • The Breusch-Pagan Test regresses squared residuals only on the original predictors in levels, so it is best at catching heteroskedasticity that is linearly related to those predictors. The White Test enlarges the auxiliary regression to include squared terms and cross-products of the predictors, letting it detect a broader range of heteroskedasticity patterns and even some functional-form misspecification, at the cost of consuming more degrees of freedom, especially with many predictors.
  • The original Breusch-Pagan statistic assumes the regression errors are normally distributed; when that assumption fails, the test can reject too often even when variance is constant. Koenker (1981) proposed a studentized version that divides the squared residuals by their own sample variance before running the auxiliary regression, which makes the resulting statistic valid under non-normal errors-this studentized form is what most modern software, including statsmodels het_breuschpagan, reports by default.
  • The most common fix is to switch to heteroskedasticity-consistent (robust) standard errors, such as White or HC3 standard errors, which leave the coefficient estimates unchanged but correct the standard errors and resulting p-values. Alternatives include Weighted Least Squares if the variance pattern is well understood, or a variance-stabilizing transformation like taking the log of the outcome variable.
  • No-under standard assumptions, ordinary least squares coefficient estimates remain unbiased and consistent even when heteroskedasticity is present. What breaks down is the efficiency of the estimates and the reliability of the standard errors, which is why the Breusch-Pagan Test matters for trustworthy hypothesis tests and confidence intervals rather than for the coefficients themselves.

Key Takeaways

  • The Breusch-Pagan Test checks whether the variance of regression residuals is constant (homoskedastic) or changes systematically with the predictors (heteroskedastic).
  • It works by regressing the squared residuals on the original predictors and computing \( LM = nR^2 \) from that auxiliary regression, compared against a \( \chi^2_k \) distribution.
  • The Koenker studentized version is the modern default-it remains valid even when regression errors are not normally distributed, unlike the original 1979 statistic.
  • Detecting heteroskedasticity does not bias OLS coefficients, but it does undermine the reliability of standard errors, t-tests, and confidence intervals.
  • In Python, statsmodels' het_breuschpagan computes the studentized test directly from a fitted OLS model's residuals and design matrix in a single line.
  • If heteroskedasticity is detected, the simplest fix is usually heteroskedasticity-robust (White/HC3) standard errors; Weighted Least Squares and variance-stabilizing transforms are alternatives, as outlined in What to Do If Heteroskedasticity Is Detected.
  • If you suspect nonlinear variance patterns rather than a simple linear relationship with the predictors, consider the White Test instead.

The Breusch-Pagan Test remains one of the most widely used regression diagnostics because heteroskedasticity is so common in practice-almost any regression involving money, size, or counts is a plausible candidate for residual variance that grows or shrinks with the predictors. By reusing quantities already available after any regression fit-just the residuals and the original predictors-the test offers a fast, well-established way to check the constant-variance assumption before trusting a model's standard errors.

The two worked examples above showed the same underlying pattern from two angles: a small, hand-calculated case where squared residuals climbed steadily with the predictor, and a household spending regression where the same pattern emerged from realistic income data. Reporting the Breusch-Pagan statistic-ideally its Koenker studentized version-alongside a residuals-versus-fitted-values plot, and switching to robust standard errors whenever the test is significant, gives a reliable foundation for trusting a regression's inference.