University

Time series econometrics · Second year

Autocorrelation and serial correlation

Serial correlation and autocorrelation are the same thing: correlation of a series with its own past. By convention "autocorrelation" is said of a series and "serial correlation" of regression errors. The usual standard errors assume it away; in a time-series model it signals dynamics left out. The Breusch-Godfrey test checks for it; Durbin-Watson is invalid with a lagged dependent variable.

In a regression on data over time, each period's error can be correlated with earlier errors. This serial correlation breaks the assumption behind the usual OLS standard errors and, when a lagged dependent variable is a regressor, makes the estimates inconsistent, so the remedy depends on which case applies.

1. What serial correlation is

A real series shows that the two names describe one property. Quarterly UK GDP growth over 1984 Q1 to 2019 Q4 (144 quarters) has a first sample autocorrelation \(r(1) = 0.556\). Regress growth on a constant and the residuals are its deviations from the mean, so their first autocorrelation is exactly the same 0.556: autocorrelation when said of the series, serial correlation when said of the regression's errors.

In a regression on data recorded over time, \(y_t = \beta_0 + \beta_1 x_t + u_t\), the error \(u_t\) holds whatever moves \(y_t\) and is not in the model. The usual OLS standard errors assume that the errors of different periods are uncorrelated.

Definition: serial correlation

The errors \(u_t\) are serially correlated if \(\operatorname{Corr}(u_t, u_{t-k}) \neq 0\) for some lag \(k \ge 1\). First-order serial correlation is correlation at lag 1, between each error and the one before; it is positive when \(\operatorname{Corr}(u_t, u_{t-1}) > 0\).

Remarks. Intuitively, the errors carry over, so the model's mistakes can be partly predicted from its past ones. The errors are never observed; tests use the residuals \(\hat u_t\) that estimate them. Serial correlation and autocorrelation are not two problems but one property under two names.

Figure 1 builds two series from the same 100 independent standard normal shocks \(\varepsilon_t\) (books use other letters; the choice is cosmetic). One is the shocks themselves, which are white noise. The other is AR(1) errors, \(u_t = 0.8\,u_{t-1} + \varepsilon_t\) from \(u_0 = 0\): each error keeps 0.8 of the one before and adds a new shock. The band, \(\pm 1.96/\sqrt{100}\), is the approximate 95% range of \(r(k)\) at one lag for independent values (lesson 23).

Top row: a white-noise series of 100 values that changes sign 56 times, and its correlogram with every bar for lags 1 to 10 inside the band of ±0.196; r(1) = 0.07, Durbin-Watson 1.83. Bottom row: AR(1) errors with coefficient 0.8 built from the same shocks, which change sign 20 times and stay on one side of zero for up to 18 values in a row; their correlogram starts at r(1) = 0.85 and dies away slowly, with lags 1 to 7 outside the band; Durbin-Watson 0.28.
Figure 1. The same 100 shocks without and with positive serial correlation. White noise (top): \(r(1) = 0.07\), Durbin-Watson 1.83, no bar of lags 1 to 10 outside ±0.196. AR(1) errors with coefficient 0.8 (bottom): \(r(1) = 0.85\), Durbin-Watson 0.28, lags 1 to 7 outside. Simulated with seed 2026; recipe at the end of the page.

The white noise changes sign 56 times in 99 steps, the AR(1) errors 20 times, with one spell of 18 periods on the same side of zero. Their \(r(1)\) of 0.85 exceeds the 0.8 that built them: it is an estimate from one path of 100 values.

What students say

“Nicky is an excellent econometrics tutor. He explains complex concepts clearly and makes them much easier to understand.”
Charles GardnerGoogle review
“I was completely lost in my economics class, and then I started working Nicky and he totally saved me. He was excellent at explaining the material and extremely accommodating to meet with me many times despite us being in different time zones! Highly recommend working with Nicky!”
Claire ChouGoogle review
“Nicky is a very good and thorough teacher. He has excellent knowledge of econometrics and takes the time to work through your questions. Highly recommended!”
ChrisEconometrics · 22/08
“Really great tutor! Encouraging, knowledgeable, friendly”
JedEconometrics · 09/02
“Very good lesson, Nicky is very helpful.”
ChrisEconometrics · 19/08
“Very helpful and clear.”
ClaireEconometrics · 22/01
“I gather it was very useful, thank you!”
ClaireEconometrics · 12/01
“Fantastic!”
JedEconometrics · 11/02

2. Why it matters: what it does to OLS

This section shows what serial correlation does to OLS in three settings.

A static regression: wrong standard errors

Suppose the regressor is strictly exogenous: the errors are unrelated to \(x\) at every date, past and future. OLS is then unbiased with or without serial correlation: among the Gauss-Markov assumptions, exogeneity gives unbiasedness and uncorrelated errors are a separate condition. The standard error is another matter. The slope's error is a weighted sum of the errors, whose variance includes every covariance (lesson 3); the usual variance formula, \(\sigma^2/\sum_t (x_t - \bar x)^2\), sets them all to zero. With positively correlated errors and a positively autocorrelated \(x\), nearby weights are positively correlated, so the dropped covariances sum to a positive amount and the formula is too small; if \(x\) has no autocorrelation, they roughly cancel. The extreme case is a regression on a constant, whose coefficient is the sample mean: with positively correlated observations its variance exceeds the usual \(\sigma^2/T\) (lesson 21).

Figure 2 measures the effect: 10,000 samples of \(T = 100\) from \(y_t = 1 + 0.5\,x_t + u_t\), with \(x\) independent of \(u\), in each of three designs, testing \(H_0: \beta_1 = 0.5\), true by construction, with the usual 5% t-test.

Three bars. With x and u both independent over time, the test rejects the true slope in 5.3% of 10,000 samples; with x and u both AR(1) with coefficient 0.8, in 34.8%; with only u AR(1), in 5.5%. A dashed line marks the nominal 5%.
Figure 2. With x and the errors both autocorrelated, a 5% test rejects a true null in 34.8% of samples. Share of samples in which the test rejects \(\beta_1 = 0.5\): 5.3% when neither x nor u is autocorrelated, 34.8% when both are AR(1) with coefficient 0.8, 5.5% when only u is (Monte Carlo standard errors 0.2 to 0.5 points). Dashed line: the nominal 5%. Seed 2026; recipe at the end of the page.

The slopes average about 0.50 in every design (0.497 to 0.498 in this run, low by chance; the designs share their draws). With \(x\) and the errors both autocorrelated, the usual standard error averages 0.101 against an actual spread (standard deviation) of 0.211, and a nominal 5% test rejects a true null in 34.8% of samples. With only the errors autocorrelated it is close to right, 0.096 against 0.100.

A lagged dependent variable: inconsistent estimates

Now let the regressor be last period's \(y\), with serially correlated errors:

$$ \begin{aligned} y_t &= 0.5\,y_{t-1} + u_t , \\ u_t &= 0.5\,u_{t-1} + \varepsilon_t . \end{aligned} $$

In words: y keeps half of its last value and adds an error; the error keeps half of the last error and adds a new shock.

OLS settles on the coefficient in large samples only if the regressor is uncorrelated with the error. Here \(y_{t-1}\) contains \(u_{t-1}\), which is correlated with \(u_t\), so the condition fails. In 2,000 simulated samples at each length, the OLS coefficient averages 0.781 at \(T = 100\), 0.798 at \(T = 1{,}000\) and 0.800 at \(T = 10{,}000\), its standard deviation falling from 0.050 to 0.005: more data settle it ever more tightly on 0.8, not 0.5. OLS is inconsistent.

Show why the estimates settle on 0.8
  1. Substitute. Put \(u_t = y_t - 0.5\,y_{t-1}\) and \(u_{t-1} = y_{t-1} - 0.5\,y_{t-2}\) into the error equation: \(y_t = y_{t-1} - 0.25\,y_{t-2} + \varepsilon_t\).
  2. Solve for the target. In a large sample the OLS coefficient settles on \(\operatorname{Cov}(y_t, y_{t-1})/\operatorname{Var}(y_{t-1})\), the first autocorrelation \(\rho(1)\) of the stationary \(y\). Multiply the equation of step 1 by \(y_{t-1}\), take expectations (\(\varepsilon_t\) is uncorrelated with \(y_{t-1}\); \(y\) has mean zero) and divide by the variance: \(\rho(1) = 1 - 0.25\,\rho(1)\), so \(\rho(1) = 1/1.25 = 0.8\).

A time-series model: dynamics left out

Substituting the error equation into the model gives \(y_t = y_{t-1} - 0.25\,y_{t-2} + \varepsilon_t\): \(y\) is an AR(2) with white-noise shocks, and the regression on one lag left \(y_{t-2}\) in its errors. In general an AR(p) whose errors follow an AR(m) is an AR(p + m). Serial correlation in a time-series model's residuals thus signals dependence on the past that the model has not used; the remedy is a better model, not better standard errors.

3. Good practice: test after you estimate

Since serial correlation decides how a regression may be read, the test comes straight after estimation.

  • Residuals: those of the model as estimated, for every observation in the fit.
  • Lags: by convention a year, \(m = 4\) for quarterly data and \(m = 12\) for monthly, so that leftover seasonality, a link with the same quarter or month a year earlier, is tested. The verdict can change with \(m\): for the AR(2) of section 6, p = 0.028 with 4 lags and 0.129 with 8. Report every \(m\) tried.
  • Report: the test, \(m\), the statistic, the p-value and the sample, as in "Breusch-Godfrey, 4 lags: LM = 8.04, p = 0.090, 143 quarters".

4. The Breusch-Godfrey test

The Breusch-Godfrey test asks, with one extra regression, whether the residuals can be predicted from their own past. It is a Lagrange multiplier (LM) test of no serial correlation up to lag \(m\), with power against AR(m) and MA(m) errors alike.

  1. Estimate the model by OLS and save its \(n\) residuals \(\hat u_t\).
  2. Regress \(\hat u_t\) on the original regressors and on \(\hat u_{t-1}, \dots, \hat u_{t-m}\), with coefficients \(\psi_1, \dots, \psi_m\). R's bgtest and statsmodels set lagged residuals from before the sample to zero, keeping all \(n\) observations.
  3. Compute \(LM = n R^2\) from this regression, to test \(H_0: \psi_1 = \dots = \psi_m = 0\) (no serial correlation up to lag \(m\)) against \(H_1\): at least one \(\psi_j \neq 0\).
  4. Compare with \(\chi^2_m\). If \(H_0\) holds, \(LM\) is approximately chi-square with \(m\) degrees of freedom in a large sample. At the 5% level, reject when \(LM\) exceeds the critical value, 9.49 for \(m = 4\).

In words: LM = the number of observations × the share of the residuals' variation explained by their own lags and the regressors.

If \(H_0\) holds, each lagged residual adds about \(1/n\) to \(R^2\) by chance, so \(n R^2\) is about \(m\), the mean of a \(\chi^2_m\); under serial correlation \(R^2\) stays above zero and \(LM\) grows with \(n\). Including the original regressors keeps the test valid when a regressor is correlated with past errors, as \(y_{t-1}\) is in an AR model (module notes), so unlike Durbin-Watson it is valid with a lagged dependent variable.

Not rejecting is reported as "no evidence of serial correlation up to lag \(m\) at the 5% level". A model whose errors are uncorrelated (white noise) is called dynamically complete: it leaves no correlation with the past in its errors. A test that does not reject cannot establish that a model is.

Take the AR(1) for UK GDP growth (quarter on quarter, from ONS series ABMI as published in September 2026) over 1984 Q1 to 2019 Q4, 143 pairs. The pandemic quarters from 2020 Q1 are left out because they would dominate every statistic (lesson 22).

CoefficientStd. errorp-value
Constant0.24480.0598below 0.0005
Last quarter's growth0.55720.0700below 0.0005

AR(1) for UK GDP growth, 143 pairs, R-squared 0.310.

The extra regression has \(R^2 = 0.0562\), so \(LM = 143 \times 0.0562 = 8.04\), below 9.49, with p = 0.090: no evidence of serial correlation up to lag 4 at the 5% level, though with p below 0.10 the evidence is weak rather than absent. The code reads uk-gdp-growth.csv (save it in your working folder first); R's bgtest and dwtest come from the lmtest package.

Code and output:

R: the code

# AR(1) for UK GDP growth, 1984 Q1 to 2019 Q4, then two tests for serial correlation
library(lmtest)
gdp <- read.csv("uk-gdp-growth.csv")
# full-precision growth from gdp (the file's growth column has 4 decimals)
gdp$growth <- c(NA, 100 * (gdp$gdp[-1] / head(gdp$gdp, -1) - 1))
d <- subset(gdp, quarter >= "1984Q1" & quarter <= "2019Q4")
d$lag_growth <- c(NA, head(d$growth, -1))  # last quarter's growth (none for 1984 Q1)
fit <- lm(growth ~ lag_growth, data = d)
summary(fit)
bgtest(fit, order = 4)  # Breusch-Godfrey test, lags 1 to 4
dwtest(fit)             # Durbin-Watson test

R: what it prints

> # AR(1) for UK GDP growth, 1984 Q1 to 2019 Q4, then two tests for serial correlation
> library(lmtest)
Loading required package: zoo

Attaching package: ‘zoo’

The following objects are masked from ‘package:base’:

    as.Date, as.Date.numeric

> gdp <- read.csv("uk-gdp-growth.csv")
> # full-precision growth from gdp (the file's growth column has 4 decimals)
> gdp$growth <- c(NA, 100 * (gdp$gdp[-1] / head(gdp$gdp, -1) - 1))
> d <- subset(gdp, quarter >= "1984Q1" & quarter <= "2019Q4")
> d$lag_growth <- c(NA, head(d$growth, -1))  # last quarter's growth (none for 1984 Q1)
> fit <- lm(growth ~ lag_growth, data = d)
> summary(fit)

Call:
lm(formula = growth ~ lag_growth, data = d)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.72517 -0.28437  0.00251  0.23084  1.42066 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.24483    0.05976   4.097 7.03e-05 ***
lag_growth   0.55717    0.07000   7.960 5.15e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.5366 on 141 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:   0.31,	Adjusted R-squared:  0.3051 
F-statistic: 63.36 on 1 and 141 DF,  p-value: 5.145e-13

> bgtest(fit, order = 4)  # Breusch-Godfrey test, lags 1 to 4

	Breusch-Godfrey test for serial correlation of order up to 4

data:  fit
LM test = 8.0385, df = 4, p-value = 0.09018

> dwtest(fit)             # Durbin-Watson test

	Durbin-Watson test

data:  fit
DW = 2.0688, p-value = 0.6431
alternative hypothesis: true autocorrelation is greater than 0

Python: the code

import pandas as pd
import statsmodels.formula.api as smf
from statsmodels.stats.diagnostic import acorr_breusch_godfrey
from statsmodels.stats.stattools import durbin_watson

# AR(1) for UK GDP growth, 1984 Q1 to 2019 Q4, then two tests for serial correlation
gdp = pd.read_csv("uk-gdp-growth.csv")
# full-precision growth from gdp (the file's growth column has 4 decimals)
gdp["growth"] = 100 * gdp["gdp"].pct_change()
d = gdp[gdp["quarter"].between("1984Q1", "2019Q4")].copy()
d["lag_growth"] = d["growth"].shift(1)  # last quarter's growth (none for 1984 Q1)
fit = smf.ols("growth ~ lag_growth", data=d).fit()
print(fit.summary())
bg = acorr_breusch_godfrey(fit, nlags=4)  # LM statistic, its p-value, F, its p-value
print("Breusch-Godfrey LM, lags 1 to 4:", bg[0])
print("p-value:", bg[1])
print("Durbin-Watson:", durbin_watson(fit.resid))

Python: what it prints

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                 growth   R-squared:                       0.310
Model:                            OLS   Adj. R-squared:                  0.305
Method:                 Least Squares   F-statistic:                     63.36
Date:                Sat, 10 Oct 2026   Prob (F-statistic):           5.15e-13
Time:                        21:43:28   Log-Likelihood:                -112.88
No. Observations:                 143   AIC:                             229.8
Df Residuals:                     141   BIC:                             235.7
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      0.2448      0.060      4.097      0.000       0.127       0.363
lag_growth     0.5572      0.070      7.960      0.000       0.419       0.696
==============================================================================
Omnibus:                       13.212   Durbin-Watson:                   2.069
Prob(Omnibus):                  0.001   Jarque-Bera (JB):               25.804
Skew:                          -0.374   Prob(JB):                     2.49e-06
Kurtosis:                       4.942   Cond. No.                         2.25
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Breusch-Godfrey LM, lags 1 to 4: 8.038544518127782
p-value: 0.0901764200879288
Durbin-Watson: 2.0687775187263058

Both programs also print the Durbin-Watson statistic, 2.069; with last quarter's growth as a regressor it is not a valid test.

5. The Durbin-Watson statistic and its limits

Durbin-Watson, the older test, compares each residual with the one before, so it looks at first-order serial correlation only:

$$ d = \frac{\sum_{t=2}^{n} (\hat u_t - \hat u_{t-1})^2}{\sum_{t=1}^{n} \hat u_t^2} \approx 2\,\bigl(1 - r(1)\bigr) . $$

In words: d = the sum of squared changes in the residuals over the sum of squared residuals, about twice one minus their first autocorrelation.

Expanding the square gives two sums close to the denominator, less twice the sum of products of neighbouring residuals, which over the denominator is \(r(1)\) of the residuals (they have mean zero). So positive serial correlation (neighbours alike) pulls \(d\) towards 0, none gives \(d\) near 2, and negative serial correlation (alternating signs) pushes \(d\) towards 4. In Figure 1, \(d = 1.83\) for the white noise and 0.28 for the AR(1) errors, close to \(2(1 - 0.85) = 0.30\).

Two limits follow. First, \(d\) rests on \(r(1)\) alone, so errors correlated only with the same quarter a year earlier leave it near 2. Second, it assumes no lagged dependent variable. With \(y_{t-1}\) as a regressor, OLS loads part of the errors' serial correlation onto its coefficient, as in section 2. The residuals then look less correlated than the errors, and \(d\) is pulled towards 2. In that example \(d\) averages 1.60 in 2,000 samples of 10,000, where the errors' own first autocorrelation, 0.5, would give about 1.0. The 2.07 and 1.87 printed for the AR models of GDP growth are therefore not valid tests; quote one only with that warning.

6. Worked example: three models of UK GDP growth

Three models of the same growth series, each fitted by OLS, are tested here and read as the data give them: a constant only, the AR(1) of section 4, and an AR(2) adding growth two quarters earlier. The tests are Breusch-Godfrey at 4 lags and the Ljung-Box Q-test at 8 lags, with one degree of freedom less for each estimated lag (the Q-test).

ModelQuartersResidual r(1)Breusch-Godfrey LM, 4 lagsp-valueLjung-Box Q(8)dfp-value
Constant only1440.55650.05below 0.000580.088below 0.0005
AR(1)143-0.0738.040.0908.2870.309
AR(2)1420.05210.900.0287.7560.257

Lagged residuals from before the sample set to zero, as in R and statsmodels.

The constant-only model leaves strong serial correlation (residual \(r(1) = 0.56\), both p-values below 0.0005): evidence that growth depends on its own past. One lag takes the residual \(r(1)\) to -0.07, and for the AR(1) neither test rejects at the 5% level. Whether a little remains is borderline, and a second lag does not settle it. The AR(2)'s extra coefficient, 0.15, has \(t = 1.83\) (p = 0.070), yet Breusch-Godfrey rejects for its residuals (p = 0.028) while the Q-test does not (p = 0.257).

The verdicts also move with the details of the test. Dropping the first four quarters from the extra regression, instead of giving them zero lagged residuals, takes the AR(1)'s p-value to 0.016 and the AR(2)'s to 0.296: the verdicts swap. Across the two tests and these choices, at 4 and 8 lags, the p-values run from 0.016 to 0.309. Longer lags change the verdict again: the AR(1)'s residual autocorrelations at lags 11 and 12 are 0.25 and -0.20, outside the band of ±0.164, and with 12 lags both tests reject for both models (Ljung-Box p = 0.003 for the AR(1) and 0.009 for the AR(2); Breusch-Godfrey p = 0.014 and 0.004). So the data support "no evidence of serial correlation up to lag 4 at the 5% level" for the AR(1), with the test as R and statsmodels run it, and nothing stronger. They do not show that the AR(1) is dynamically complete, nor that the AR(2) is worse.

TestNull hypothesisValid with a lagged dependent variable?
Durbin-WatsonNo first-order serial correlationNo: \(d\) is pulled towards 2
Breusch-GodfreyNo serial correlation up to lag \(m\)Yes
Ljung-Box Q on residualsThe errors' autocorrelations at lags 1 to \(m\) are all zeroIn an AR or ARMA model, approximately, with \(m - p - q\) degrees of freedom

7. What to do when the test rejects

The remedy depends on which case of section 2 the model is in.

  • A dynamic model. With a lagged dependent variable the estimates are inconsistent, and new standard errors around them do not help. Add lags of \(y\), and of \(x\) if there is one, until the residuals show no evidence of serial correlation, choosing between candidates with AIC or BIC.
  • A static model that is otherwise correct. With strictly exogenous regressors and the right functional form, OLS is unbiased and only the standard errors need replacing: Newey-West standard errors, also called HAC (heteroskedasticity and autocorrelation consistent), remain valid in large samples under serial correlation (how they are built).
  • A static model that may be wrong. An omitted persistent variable or a wrong functional form can also produce serial correlation; then respecify.

8. Common mistakes

  • "Serial correlation and autocorrelation are different problems." They are one property under two names: for the constant-only model of GDP growth both are 0.556.
  • "Serial correlation biases OLS." Not with strictly exogenous regressors: the slopes of section 2 average about 0.50, and the standard error is what fails (0.101 against a spread of 0.211). With a lagged dependent variable OLS is inconsistent.
  • "The test did not reject, so the model is dynamically complete." It means no evidence up to lag \(m\) at the 5% level: the AR(1) of GDP growth gives p = 0.090 by default and 0.016 with the first four quarters dropped.
  • Quoting Durbin-Watson for an AR model. The lagged dependent variable pulls \(d\) towards 2, so the AR(1)'s 2.07 is not a valid test.

9. Check your understanding

Five questions, marked on the page; every option has an explanation, including the wrong ones. (Without JavaScript the explanations are shown beneath each question.)

1. After an AR(1) is fitted to 143 quarters of UK GDP growth, the Breusch-Godfrey test with four lags gives LM = 8.04. What are the null and alternative hypotheses of this test?

This turns the test round. The null is the absence of serial correlation, the claim the test can reject: lagged residuals that predict the current one make LM large, which counts against it. Here 8.04 is below the 5% critical value, 9.49, so the null of no serial correlation is not rejected.

That is the question Durbin-Watson asks. With four lags the auxiliary regression includes four lagged residuals, and the test sets all four coefficients to zero at once, so its alternative covers serial correlation at any of lags 1 to 4.

Correct. The auxiliary regression adds four lagged residuals, and H0 sets all four of their coefficients to zero. If H0 holds, LM = nR² is approximately chi-square with 4 degrees of freedom in a large sample; 8.04 is below the 5% critical value, 9.49 (p = 0.090), so H0 is not rejected at the 5% level.

Were you sure?

2. The AR(1) for UK GDP growth has last quarter's growth as its regressor, and the regression output prints a Durbin-Watson statistic of 2.07. Why is that number not a valid test of serial correlation?

The pull runs the other way. OLS loads part of the errors' serial correlation onto the coefficient of the lagged regressor, so the residuals look less correlated than the errors and d is pulled towards 2, the value for no serial correlation. In the page's simulation d averaged 1.60 where the errors' own correlation would give about 1.0.

Correct. Last quarter's growth carries last quarter's error, so with serially correlated errors OLS loads part of their correlation onto its coefficient. The residuals then look less correlated than the errors, and d sits nearer 2 than it should. Breusch-Godfrey, which keeps the regressors in its auxiliary regression, is valid here.

Losing one quarter leaves 143, ample for d. The problem is the regressor, not the sample size: last quarter's growth carries last quarter's error, so OLS absorbs part of the errors' correlation and d is pulled towards 2 however long the sample.

Were you sure?

3. A static regression y = β0 + β1x + u is fitted by OLS to 100 quarters. The regressor is strictly exogenous, and both x and the errors are positively autocorrelated, each an AR(1) with coefficient 0.8. What happens to the slope estimate and its usual standard error?

Correct. Unbiasedness rests on strict exogeneity, not on uncorrelated errors. The usual formula drops the covariances between errors, which are positive here and, with x also autocorrelated, sum to a positive amount. In the page's simulation of this design the slopes had a standard deviation of 0.211, the usual standard error averaged 0.101, and a 5% test rejected a true null in 34.8% of samples.

It errs the other way. The covariances the usual formula drops are positive when x and the errors are both positively autocorrelated, so the actual spread, 0.211 in the simulation, is about twice the usual standard error, 0.101. A 5% test then rejects a true null in 34.8% of samples, far more than 5%.

Unbiasedness rests on strict exogeneity, which holds here, not on uncorrelated errors. In 10,000 simulated samples of this design the slopes averaged about 0.50 (0.497 in that run), the slope that generated the data. Serial correlation spoils the standard error, not the centre of the estimates.

Were you sure?

4. The residuals of the constant-only model of UK GDP growth (144 quarters, 1984 Q1 to 2019 Q4) have a first sample autocorrelation r(1) = 0.556. Using the approximation that links the two, what is the Durbin-Watson statistic?

Correct. d ≈ 2(1 - r(1)) = 2 × (1 - 0.556) = 0.888, about 0.89. The statistic computed from the residuals is 0.885; the approximation drops the end terms. With no lagged dependent variable among the regressors, Durbin-Watson is valid here, and a value this far below 2 signals positive serial correlation.

1.11 is 2 × 0.556, as if d were twice r(1). The statistic falls as r(1) rises: d ≈ 2(1 - 0.556) = 0.89.

1.44 is 2 - 0.556, which subtracts r(1) once. Expanding the square in d gives minus twice the products of neighbouring residuals, so d ≈ 2 - 2 × 0.556 = 0.89.

3.11 is 2(1 + 0.556), which reads positive serial correlation as pushing d above 2. Neighbouring residuals that are alike make the changes small, so d falls below 2: 2(1 - 0.556) = 0.89.

Were you sure?

5. For the AR(1) of UK GDP growth, the Breusch-Godfrey test with four lags gives p = 0.090. Which conclusion does this result support?

Not rejecting does not establish the null. The test looks at four lags with the power that 143 quarters give it, and here the verdict is fragile: dropping the first four quarters instead of zero-filling their lagged residuals gives p = 0.016. Dynamically complete means white-noise errors, which a test that does not reject cannot show.

A p-value is the probability, if H0 is true, of an LM at least as large as the one observed, 8.04. It is not the probability that H0 is true, which the test does not give.

Correct. 0.090 is above 0.05, so H0 is not rejected at the 5% level, and that is all the result licenses. Since p is below 0.10 the evidence is weak rather than absent, and it moves with how the first residuals are handled: p = 0.016 if the first four quarters are dropped.

Were you sure?

10. Questions people ask

Yes. Both mean correlation of a series with its own past values. By convention "autocorrelation" is said of a series and "serial correlation" of a regression's errors. Quarterly UK GDP growth, 1984 Q1 to 2019 Q4, has a first autocorrelation of 0.56, and the residuals of a regression of growth on a constant have exactly the same.

It is correlation between each error of a regression and the error one period before. When it is positive, errors keep their sign in runs: simulated AR(1) errors with coefficient 0.8 changed sign 20 times in 99 steps, against 56 for independent errors. The Durbin-Watson statistic, about 2(1 - r(1)), looks at lag 1 only.

Run the Breusch-Godfrey test: regress the model's residuals on its regressors and m lagged residuals, and compare n times the R-squared with a chi-square on m degrees of freedom. By convention m = 4 for quarterly data and 12 for monthly. For an AR(1) of UK GDP growth, 1984 to 2019, LM = 8.04 (p = 0.090).

With strictly exogenous regressors OLS stays unbiased, but the usual standard errors are too small when the regressor is positively autocorrelated as well. In 10,000 simulated samples with both autocorrelated, the slopes had a standard deviation of 0.211 while the usual standard error averaged 0.101, and a 5% test rejected a true null in 34.8% of samples.

11. Where next

A residual test failing in your project? Send the output

I tutor econometrics one-to-one. Send the output you are stuck on, with the module and the deadline, and we will work through it in the free 30-minute consultation.

Book a free 30-minute consultation Econometrics tutor: how it works

Data and simulation. Source: Office for National Statistics, series ABMI, as published in September 2026; growth computed from ABMI. Contains public sector information licensed under the Open Government Licence v3.0. Figure 1: a fresh numpy default_rng(2026), then rng.standard_normal(100); white noise is the 100 draws, and the AR(1) errors are built from them with \(u_0 = 0\). Figure 2: for each design a fresh default_rng(2026), then zx = rng.standard_normal((10000, 100)) and zu the same, one row per sample; an AR(1) series is \(x_1 = z_1\), \(x_t = 0.8\,x_{t-1} + 0.6\,z_t\), unit variance from the start; reject when \(|t|\) exceeds 1.984 (98 degrees of freedom). Lagged dependent variable: 2,000 samples at each \(T\), each with a fresh default_rng(2026), then z0 = rng.standard_normal((2000, 2)) for stationary starting values and e = rng.standard_normal((2000, T)), then OLS of \(y_t\) on a constant and \(y_{t-1}\); the Durbin-Watson averages of section 5 use \(T = 10{,}000\). Adapted from my lecture notes for Time Series Econometrics (ECON30401) at the University of Manchester.

Free 30-min consultationNo obligation · reply within one business day
Book now