Breusch-Godfrey Test

Breusch-Godfrey Test

Overview

Definition

The Breusch-Godfrey Test is a Lagrange Multiplier test for autocorrelation in the errors in a regression model. Unlike the Durbin-Watson Test, it is valid in the presence of lagged dependent variables and can test for higher-order serial correlation (up to lag p).


1. Procedure

  1. Estimate the OLS regression: Yt=Xtβ+ut
  2. Obtain residuals: u^t
  3. Run auxiliary regression: Regress u^t on original Xt and lagged residuals u^t1,,u^tp.
  4. Calculate LM=(Np)R2 from the auxiliary regression.

2. Comparison: BG vs. DW

Feature Durbin-Watson Breusch-Godfrey
Order defined First-order (AR(1)) only Any order p
Lagged Dependent Variables Invalid (Biased) Valid
Distribution Exact Bounds tables Asymptotic Chi-Square

Recommendation: Breusch-Godfrey is generally preferred for its flexibility.


3. Python Implementation Example

import statsmodels.stats.diagnostic as dg

# Perform Test (up to lag 2)
# Results: [LM Stat, LM p-value, F-Stat, F p-value]
bg_test = dg.acorr_breusch_godfrey(model, nlags=2)

print(f"LM Statistic: {bg_test[0]:.3f}")
print(f"LM p-value: {bg_test[1]:.4f}")