University

Introduction to Econometrics · Part 6: Time series · Second year

Lesson 25: AR(1) models and forecasting

A forecast needs a rule linking today's value of a series to tomorrow's. The first-order autoregressive model, AR(1), uses today's value alone: given it, tomorrow's expected value is the mean of the process plus a fixed share of today's gap from that mean. It gives forecasts for any horizon and their error variances. Auto-regressive means regressed on its own past.

1. Why a model: last quarter's growth and the next

UK GDP growth shows, before any notation, why a forecast should use the latest value of a series and not only its average. Over the 128 quarters from 1984 Q1 to 2015 Q4, real GDP grew by 0.57% a quarter on average (as published in September 2026; GDP is revised). That average is one guess for growth in 2016 Q1.

The data suggest a better one. The 69 quarters that followed a quarter of above-average growth grew by 0.77% on average; the 58 that followed a below-average quarter grew by 0.32%. Growth was persistent, that is, positively autocorrelated: its sample autocorrelation at lag 1, \(r(1)\), which measures how one quarter's growth moves with the next, is 0.56 (lesson 23). A model replaces the two averages with the expected value of next quarter's growth given the latest quarter, its conditional mean, and gives a variance for the forecast error.

We fit the model to 1984 Q1 to 2015 Q4 and hold back 2016 Q1 to 2019 Q4 to compare forecasts with outcomes. The quarters from 2020 Q1 on are left out, because two of them would dominate every statistic: with them, the standard deviation of growth since 1984 is 2.18 points, against 0.64 to 2019 (lesson 22). Differences between growth rates, such as forecast errors, are in percentage points, or points.

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. The AR(1) model: mean, variance and autocorrelation

A forecaster needs three things from a model: the level the process returns to, how far it strays from that level, and how strongly values some periods apart are related. As in lesson 21, \(Y_t\) is the process, a random variable at each date \(t\), and \(y_1, \dots, y_T\) are the \(T\) values observed.

Definition: the AR(1) process

A process \(Y_t\) is a first-order autoregressive process, AR(1), if

$$ Y_t = \alpha + \phi\,Y_{t-1} + \varepsilon_t , $$

where the shocks \(\varepsilon_t\) are white noise with variance \(\sigma^2\): mean zero, constant variance and no correlation between dates (lesson 24). \(\alpha\) is the intercept and \(\phi\) the autoregressive coefficient.

Remarks. In words: this period's value is a constant, plus a share \(\phi\) of last period's value, plus a shock. Intuitively, an AR(1) is a random fluctuation around the first-order difference equation \(Y_t = \alpha + \phi Y_{t-1}\): the equation sets the dynamics, the shock the randomness. The intercept \(\alpha\) is not the mean of the process.

\(Y_t\) is regressed on its own previous value, hence auto-regressive; first-order means one lag. Books use other letters, such as \(c\) or \(\beta_0\) for \(\alpha\) and \(\beta_1\) for \(\phi\); the choice is cosmetic. The properties below hold for a stationary AR(1), whose mean, variance and autocorrelations do not change over time (lesson 24): \(|\phi| < 1\), with the process run from the distant past or started from its stationary distribution.

The mean. The level the process fluctuates around is its mean, \(\mu = E[Y_t]\). Stationarity makes it the same at every date, so taking expectations of the model, with \(E[\varepsilon_t] = 0\), gives \(\mu = \alpha + \phi\mu\) and

$$ \mu = \frac{\alpha}{1 - \phi} . $$

In words: the mean of the process = the intercept divided by one minus the coefficient.

Each period the process keeps a share \(\phi\) of its level and adds \(\alpha\), so the level settles where the addition replaces the loss, \((1 - \phi)\mu = \alpha\). For UK GDP growth, with the estimates of section 4, the estimated mean is \(\hat\mu = 0.2462/(1 - 0.5616)\), that is \(0.2462/0.4384 = 0.56\)% a quarter, over twice the intercept; \(\phi\) has no units.

Show where the mean comes from
  1. Take expectations. The shock has mean zero, so \(E[Y_t] = \alpha + \phi\,E[Y_{t-1}]\).
  2. Use stationarity. The mean is the same at every date: \(E[Y_t] = E[Y_{t-1}] = \mu\). Hence \(\mu = \alpha + \phi\mu\).
  3. Solve. \(\mu(1 - \phi) = \alpha\), so \(\mu = \alpha/(1 - \phi)\), which needs \(\phi \neq 1\).

The module notes reach the mean and the variance by writing the AR(1) as a sum of past shocks.

The variance, \(\gamma(0) = \operatorname{Var}(Y_t)\), the autocovariance at lag 0 of lesson 23, measures how far the process strays from its mean:

$$ \gamma(0) = \frac{\sigma^2}{1 - \phi^2} . $$

In words: the variance of the process = the shock variance divided by one minus the coefficient squared.

Each period the process keeps \(\phi^2\) of its variance, since a coefficient comes out of a variance squared, and adds \(\sigma^2\) from a shock uncorrelated with the past, so the two variances add (lesson 3). Stationarity makes the variance the same at every date, so it settles where the two balance, \(\gamma(0) = \phi^2\gamma(0) + \sigma^2\). That balance gives a positive, finite variance only when \(|\phi| < 1\), which is why stationarity needs it. Its square root is in points: for GDP growth, with \(\hat\sigma = 0.5598\) from section 4, \(0.5598/\sqrt{1 - 0.5616^2}\), that is \(0.5598/0.8274 = 0.68\), against a standard deviation of 0.67 in the 128 quarters.

The autocorrelation at lag \(k\) (lesson 23) is

$$ \rho(k) = \phi^k . $$

In words: the autocorrelation at lag \(k\) = the coefficient to the power \(k\).

\(Y_t\) is \(\phi Y_{t-1}\) plus a constant and a shock uncorrelated with \(Y_{t-1}\), so the covariance of \(Y_t\) with \(Y_{t-1}\) is \(\phi\gamma(0)\) and \(\rho(1) = \phi\); each further lag multiplies by \(\phi\) again. The rule fitted to GDP growth has autocorrelations 0.56, 0.32 and 0.10 at lags 1, 2 and 4. These belong to the rule; the sample autocorrelations \(r(k)\) come from the data and would change with another history.

3. How fast a gap from the mean closes

Forecasts are easiest to read as gaps from the mean, and \(\phi\) sets how fast a gap closes. Substituting \(\alpha = (1 - \phi)\mu\) into the model and subtracting \(\mu\) from both sides gives

$$ Y_t - \mu = \phi\,(Y_{t-1} - \mu) + \varepsilon_t . $$

In words: this period's gap from the mean = \(\phi\) times last period's gap, plus a shock.

Start one unit above the mean with no further shocks: after one period the gap is \(\phi\), after two \(\phi^2\), after \(h\) periods \(\phi^h\), each period removing the share \(1 - \phi\) of what remains. We write \(h\) for the number of periods ahead, the horizon; some books and lecture notes write \(J\).

Three curves show the share of a one-unit gap from the mean left after h periods. With φ = 0.9 the share is 0.90 after 1 period, 0.66 after 4 and 0.43 after 8 (half-life 6.6). With φ = 0.56 it is 0.56, 0.10 and 0.010 (half-life 1.2). With φ = 0.2 it is 0.20, 0.0016 and almost nothing after 8 (half-life 0.43).
Figure 1. With φ = 0.56, half of a gap from the mean has closed after 1.2 quarters; with φ = 0.9 it takes 6.6. The share of a one-unit gap from the mean left after \(h\) periods with no new shocks, \(\phi^h\). After 1, 4 and 8 periods: 0.90, 0.66 and 0.43 for \(\phi = 0.9\); 0.56, 0.10 and 0.010 for \(\phi = 0.56\), the GDP estimate of section 4 (plotted unrounded); 0.20, 0.0016 and 0.000003 for \(\phi = 0.2\). Computed from \(\phi^h\); the estimate comes from ONS series ABMI.

The half-life is the number of periods after which half of a gap is left: for \(0 < \phi < 1\), the \(h\) that solves \(\phi^h = 0.5\). Taking logarithms gives \(h \ln\phi = \ln 0.5\), so

$$ \text{half-life} = \frac{\ln 0.5}{\ln \phi} . $$

In words: half-life = the logarithm of one half divided by the logarithm of the coefficient.

Both logarithms are negative; the closer \(\phi\) is to 1, the closer \(\ln\phi\) is to zero and the longer the half-life. For GDP growth it is \(\ln 0.5/\ln 0.5616\), that is \((-0.6931)/(-0.5770) = 1.20\) quarters; for \(\phi = 0.9\), 6.58 periods; for \(\phi = 0.2\), 0.43, so more than half of a gap goes in one period. With \(\phi = 1\), a random walk, \(\phi^h = 1\) and a shock never fades.

4. Estimating it: UK GDP growth, 1984 to 2015

To forecast we need numbers for \(\alpha\), \(\phi\) and \(\sigma\), estimated from the one history we have. The AR(1) is the model; OLS is the method that estimates it, as a regression of growth \(y_t\) on a constant and last quarter's growth \(y_{t-1}\) (lesson 9). The first quarter, 1984 Q1, enters only as a regressor, so 128 quarters give \(n = 127\) pairs, and the residual standard error \(\hat\sigma\), with divisor \(n - 2\) (lesson 10), estimates \(\sigma\).

EstimateStd. errort95% interval
Intercept, \(\hat\alpha\)0.24620.06503.790.12 to 0.37
Last quarter's growth, \(\hat\phi\)0.56160.07397.600.42 to 0.71

\(\hat\sigma = 0.5598\) points; \(R^2 = 0.316\). The intervals use the t multiple 1.979, with 125 degrees of freedom (lesson 11). Four decimal places are kept for the hand calculations below.

The code reads uk-gdp-growth.csv: UK GDP for each quarter from 1955 Q1 to 2026 Q2, with columns quarter, gdp (£ million, chained volume measures, seasonally adjusted) and growth (per cent, to four decimals). Save it in your working folder first. The code recomputes growth from gdp at full precision.

Code and output:

R: the code

# AR(1) for UK GDP growth: this quarter's growth on last quarter's, 1984 Q1 to 2015 Q4
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 <= "2015Q4")
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)
confint(fit)

R: what it prints

> # AR(1) for UK GDP growth: this quarter's growth on last quarter's, 1984 Q1 to 2015 Q4
> 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 <= "2015Q4")
> 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.73038 -0.28122  0.00365  0.24271  1.41262 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.24624    0.06500   3.788 0.000235 ***
lag_growth   0.56163    0.07393   7.597 6.19e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.5598 on 125 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.3159,	Adjusted R-squared:  0.3104 
F-statistic: 57.72 on 1 and 125 DF,  p-value: 6.189e-12

> confint(fit)
                2.5 %    97.5 %
(Intercept) 0.1175900 0.3748824
lag_growth  0.4153178 0.7079375

Python: the code

import pandas as pd
import statsmodels.formula.api as smf

# AR(1) for UK GDP growth: this quarter's growth on last quarter's, 1984 Q1 to 2015 Q4
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", "2015Q4")].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())

Python: what it prints

                            OLS Regression Results                            
==============================================================================
Dep. Variable:                 growth   R-squared:                       0.316
Model:                            OLS   Adj. R-squared:                  0.310
Method:                 Least Squares   F-statistic:                     57.72
Date:                Sat, 10 Oct 2026   Prob (F-statistic):           6.19e-12
Time:                        21:43:27   Log-Likelihood:                -105.51
No. Observations:                 127   AIC:                             215.0
Df Residuals:                     125   BIC:                             220.7
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercept      0.2462      0.065      3.788      0.000       0.118       0.375
lag_growth     0.5616      0.074      7.597      0.000       0.415       0.708
==============================================================================
Omnibus:                       10.929   Durbin-Watson:                   2.068
Prob(Omnibus):                  0.004   Jarque-Bera (JB):               18.098
Skew:                          -0.380   Prob(JB):                     0.000118
Kurtosis:                       4.686   Cond. No.                         2.18
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

The row lag_growth holds \(\hat\phi\): in the fitted rule, a quarter one point above the mean is followed, on average, by one 0.56 points above it. The usual t-test is valid in large samples when \(|\phi| < 1\) and the shocks are independent with constant variance (module notes). If \(\phi\) were 0, a t-statistic at least as far from zero as 7.60 would then arise with probability below 0.0005 (lesson 8): strong evidence against \(\phi = 0\). The data are compatible with \(\phi\) from 0.42 to 0.71: half-lives of 0.8 to 2.0 quarters.

From the unrounded estimates the implied mean is 0.5617, or 0.56%, close to the mean of the 128 quarters, 0.57%; the forecasts below use 0.5617. From the estimates rounded to two places, \(0.25/(1 - 0.56)\) would give 0.57 instead.

OLS on a correctly specified AR(1) is consistent but biased downwards in small samples when \(\phi\) is positive, because the regressor is the series' own past. Serial correlation left in the residuals is tested with the Breusch-Godfrey test, not with the Durbin-Watson statistic in the Python printout, 2.068, which is not valid when a lagged dependent variable is a regressor (Durbin-Watson). And the fitted AR(1) is a simple rule, not the process itself: over 1984 to 2019, \(r(2) = 0.416\) exceeds \(r(1)^2 = 0.556^2 = 0.309\) (lesson 23), so an AR(2) or an ARMA(1,1) are other candidates.

5. The forecast one quarter ahead and its error

The first forecast is for the next quarter. We stand at the end of quarter \(T\), here 2015 Q4: \(y_1, \dots, y_T\) are known and \(Y_{T+1}\) is not. Three assumptions carry the derivation.

  1. The model holds: \(Y_{T+1} = \alpha + \phi Y_T + \varepsilon_{T+1}\).
  2. The parameters are known. We use the estimates 0.2462 and 0.5616 in their place, and the formulas leave out the error in those estimates.
  3. Shocks are unpredictable: each has mean zero and is independent of everything before it, a little stronger than white noise, which rules out correlation with the past but not every other link.

Given \(Y_T = y_T\), \(\alpha + \phi y_T\) is a known number (assumptions 1 and 2), and the shock has mean zero whatever happened up to \(T\) (assumption 3). So the expected value of \(Y_{T+1}\) given the data, its conditional mean, is the forecast

$$ \hat Y_{T+1} = \alpha + \phi\,y_T = \mu + \phi\,(y_T - \mu) . $$

In words: the forecast = the mean of the process + \(\phi\) times today's gap from the mean.

Among all forecasts computed from the data up to \(T\), this one has the smallest expected squared error, the average of (outcome minus forecast) squared over the values \(Y_{T+1}\) could take given the data. That is what "best" means here, not closest to the outcome every time. We use the result without proving it (module notes).

The forecast error, the outcome minus the forecast, is

$$ Y_{T+1} - \hat Y_{T+1} = \varepsilon_{T+1} . $$

In words: the one-step forecast error is the next shock.

So it has mean zero and variance \(\sigma^2\), which is also its expected squared error, the mean squared error. For GDP growth its standard deviation is \(\hat\sigma = 0.56\) points.

For 2016 Q1, from growth of 0.5503% in 2015 Q4, the forecast is \(0.2462 + 0.5616 \times 0.5503 = 0.5552\), or 0.56% (we carry four decimal places and round results to two). Growth was 0.54%: an error of -0.02 points.

6. Two quarters ahead, then h quarters

Beyond one quarter the forecast must deal with values not yet observed. Two quarters ahead, \(Y_{T+2} = \alpha + \phi Y_{T+1} + \varepsilon_{T+2}\), and \(Y_{T+1}\) is unknown at \(T\). Under the same assumptions the expected value of \(Y_{T+2}\) given the data is \(\alpha\) plus \(\phi\) times that of \(Y_{T+1}\), so the unseen value is replaced by its forecast:

$$ \begin{aligned} \hat Y_{T+2} &= \alpha + \phi\,\hat Y_{T+1} \\ &= \mu + \phi^2 (y_T - \mu) . \end{aligned} $$

In words: the two-step forecast applies the rule to the one-step forecast.

For 2016 Q2 it is \(0.2462 + 0.5616 \times 0.5552 = 0.5580\), again 0.56%. Software, carrying every digit, gives 0.5553 and 0.5581 for the two quarters; both round to 0.56.

Subtracting the forecast from the model leaves \(\phi\) times next quarter's forecast error, \(\varepsilon_{T+1}\), plus the shock after it:

$$ Y_{T+2} - \hat Y_{T+2} = \varepsilon_{T+2} + \phi\,\varepsilon_{T+1} . $$

The two shocks are uncorrelated, so their variances add, with \(\phi\) squared:

$$ \operatorname{Var}(Y_{T+2} - \hat Y_{T+2}) = \sigma^2 (1 + \phi^2) . $$

In words: the two-step error variance = the shock variance times one plus the coefficient squared.

For GDP growth the error's standard deviation rises from 0.56 to \(0.5598 \times \sqrt{1 + 0.5616^2}\), that is \(0.5598 \times 1.1469 = 0.64\) points. Repeating the steps \(h\) times gives the forecast at horizon \(h\) and its error variance:

$$ \hat Y_{T+h} = \mu + \phi^h (y_T - \mu) , $$

In words: the forecast = the mean + \(\phi^h\) times today's gap from the mean.

$$ \begin{aligned} &\operatorname{Var}(Y_{T+h} - \hat Y_{T+h}) \\ &= \sigma^2 (1 + \phi^2 + \dots + \phi^{2(h-1)}) \\ &= \sigma^2\,\frac{1 - \phi^{2h}}{1 - \phi^2} . \end{aligned} $$

In words: the error variance = the shock variance times the sum of the squared weights of the \(h\) shocks still to come.

Show where the forecast and its error variance at any horizon come from
  1. Write the future value in terms of today's gap. Apply the gap form of section 3 \(h\) times: $$ \begin{aligned} Y_{T+h} - \mu &= \phi^h (Y_T - \mu) \\ &\quad + \varepsilon_{T+h} + \phi\,\varepsilon_{T+h-1} \\ &\quad + \dots + \phi^{h-1}\varepsilon_{T+1} . \end{aligned} $$
  2. Take the expected value given the data. \(Y_T = y_T\) is known, and by assumption 3 each future shock has mean zero whatever happened up to \(T\). So \(\hat Y_{T+h} = \mu + \phi^h (y_T - \mu)\).
  3. Take the variance of what remains. The error is the future shocks, \(\varepsilon_{T+h-j}\) with weight \(\phi^j\) for \(j = 0, \dots, h - 1\). They are uncorrelated, each with variance \(\sigma^2\), so the variances add and each weight comes out squared: \(\sigma^2(1 + \phi^2 + \dots + \phi^{2(h-1)})\).
  4. Sum the series. It is geometric with ratio \(\phi^2\), so the bracket is \((1 - \phi^{2h})/(1 - \phi^2)\). When \(|\phi| < 1\), \(\phi^{2h}\) falls towards zero and the variance approaches \(\sigma^2/(1 - \phi^2)\).

The rules for the variance of a sum are in lesson 3; the module notes give the same steps one and two periods ahead.

A shock arriving \(j\) periods before the target date enters the error with weight \(\phi^j\), so each extra period adds a term and, unless \(\phi = 0\), the variance rises with \(h\); when \(|\phi| < 1\) the added terms shrink and it levels off at \(\sigma^2/(1 - \phi^2)\), the variance of the process. Far ahead, today's value no longer helps: the forecast is the mean, and its error is as variable as the process itself.

The table gives the forecasts made at 2015 Q4. Growth then was 0.011 points below the estimated mean, so the forecasts move only from 0.5553 to 0.5617, all 0.56% to two places, while the error's standard deviation climbs to 0.68 points. The last column applies the rule to a quarter one point above the mean, 1.56%: \(0.5617 + \hat\phi^h\), back towards the mean along the curve of Figure 1. The powers \(\hat\phi^h\) are those of the unrounded estimate, 0.56163; from 0.5616 the third would print as 0.1771.

hQuarter\(\hat\phi^h\)Forecast (%)Error sd (points)From 1.56% (%)
12016 Q10.56160.560.561.12
22016 Q20.31540.560.640.88
32016 Q30.17720.560.670.74
42016 Q40.09950.560.670.66
82017 Q40.00990.560.680.57
122018 Q40.00100.560.680.56
162019 Q40.00010.560.680.56

7. The fan for 2016 to 2019, and what happened

A band needs the shape of the error's distribution, so we add a fourth assumption: normal shocks. The \(h\)-step error, a weighted sum of independent normal shocks, is then normal (lesson 4), with mean zero and standard deviation \(\text{sd}(h)\), the square root of the variance in section 6. A normal distribution has 95% of its probability within 1.96 standard deviations of its centre. Hence, if all four assumptions hold, \(Y_{T+h}\) lies within \(1.96\,\text{sd}(h)\) of its forecast with probability 0.95, and the 95% forecast band is

$$ \hat Y_{T+h} \pm 1.96\,\text{sd}(h) . $$

In words: the 95% band = the forecast plus and minus 1.96 error standard deviations.

The promise of 0.95 is made before the outcome is known, so if every assumption holds, about one outcome in twenty should fall outside its band over repeated forecasts. A confidence interval is the reverse: its ends vary from sample to sample around a fixed parameter, while here the band is fixed and the outcome varies. The band also treats the estimates as the parameters, leaving out their error, which would widen it.

For 2016 Q1 the band is \(0.5552 \pm 1.96 \times 0.5598\), that is \(0.5552 \pm 1.0972\), from -0.54% to 1.65%. The half-width reaches 1.32 points at four quarters and 1.33, which is \(1.96 \times 0.6766\), from six quarters on. Figure 2 adds 50% and 80% bands (multiples 0.674 and 1.282).

UK GDP growth from 2010 Q1 to 2015 Q4, then forecasts made at 2015 Q4 for the 16 quarters of 2016 to 2019. The last value, 0.55%, was already close to the estimated mean of 0.56%, so the forecast path stays almost flat at about 0.56% (0.555% one quarter ahead, 0.562% sixteen quarters ahead). The 95% band widens from plus or minus 1.10 points one quarter ahead to plus or minus 1.33 from six quarters ahead, with the 80% and 50% bands inside it. All 16 outcomes lie inside the 95% band and the 80% band, and 14 of 16 inside the 50% band.
Figure 2. From 2015 Q4 the forecast path is almost flat, and all 16 outcomes of 2016 to 2019 fell inside the 95% band. UK GDP growth from 2010 Q1 to 2015 Q4, then the forecasts made at 2015 Q4 for 2016 Q1 to 2019 Q4 by the AR(1) fitted to 1984 Q1 to 2015 Q4, with 50%, 80% and 95% bands; dots are outcomes, the dashed line the estimated mean. From 0.5503% in 2015 Q4, against a mean of 0.5617%, the forecasts run only from 0.555% to 0.562%. The 95% band runs from -0.54% to 1.65% one quarter ahead and from -0.76% to 1.89% sixteen ahead. Inside the 95%, 80% and 50% bands: 16, 16 and 14 of the 16 outcomes, against about 15.2, 12.8 and 8 expected under the fitted model. Source: ONS series ABMI; growth computed from ABMI, as published in September 2026.

The path is almost flat because 2015 Q4 sat 0.011 points below the estimated mean: with no gap to close, the figure cannot show a return to the mean, which the last column of the table in section 6 shows.

Every outcome fell inside the 95% band, and inside the 80% band too: more than the bands should hold. Under the fitted model the 95% band would miss 0.8 of the 16 quarters on average, and the 50% band would hold about 8; it held 14. The outcomes were less spread out than the model expected. Their standard deviation was 0.32 points, against 0.67 in the estimation sample, and the root mean squared forecast error was 0.31 points, against the 0.67 the model implies. The largest error, 0.58 points in 2017 Q1, was about half the narrowest half-width, 1.10.

The estimation sample includes the recession of 2008 and 2009, with growth of -2.14% in 2008 Q4, and \(\hat\sigma\) was estimated from its shocks; 2016 to 2019 was calmer. So the bands were too wide for these four years, and 16 of 16 inside does not show that they were right. The 16 errors also come from one forecast origin and share shocks, so they are not 16 independent checks.

8. Where forecasts end up

Far ahead, a stationary AR(1)'s forecast is the mean and its error variance levels off; a random walk's does neither. Figure 3 checks the variance formula of section 6 on 10,000 simulated paths for each of \(\phi = 0\), 0.9 and 0.99, with no intercept, standard normal shocks and \(\phi\) known.

Variance of the forecast error against the horizon h from 1 to 40, simulated (dots) and from the formula (lines). For φ = 0 it stays at 1 (simulated 1.00 at h = 40). For φ = 0.9 it rises from 1 to 3.43 at h = 5 and levels off near 5.26 (simulated 5.26 at h = 40). For φ = 0.99 it is still rising at h = 40: formula 16.63 at h = 20 and 27.76 at h = 40, simulated 16.67 and 27.55; its limit is 50.25.
Figure 3. With φ = 0.9 the forecast-error variance rises with the horizon and levels off at the variance of the process, 5.26. Dots: the variance of the forecast error across 10,000 simulated paths at each horizon from 1 to 40, each path started from its stationary distribution; lines: the formula \((1 - \phi^{2h})/(1 - \phi^2)\), with \(\sigma = 1\). \(\phi = 0\): 1 at every horizon (simulated 0.97 to 1.02). \(\phi = 0.9\): 3.43 five periods ahead, levelling off at 5.26 (simulated 3.43, and 5.26 forty ahead). \(\phi = 0.99\): 27.76 forty periods ahead (simulated 27.55), limit 50.25. In these paths 119 of the 120 simulated values lie within two simulation standard errors of the formula; the other, \(\phi = 0\) twenty periods ahead (0.971), lies 2.1 below. Recipe at the foot of the page.

With \(\phi = 0\) the past is no help: the forecast is the mean and the error variance \(\sigma^2\) at every horizon. With \(\phi = 0.9\) the variance is 5.19 by twenty periods, near its limit; with \(\phi = 0.99\) it is 27.76 at forty, 55% of its limit. The more persistent the process, the longer the band keeps widening. GDP growth, with \(\hat\phi = 0.56\), reaches its limit to two places, an error standard deviation of 0.68 points, five quarters ahead.

A random walk, \(\phi = 1\), is never pulled back towards its mean (lesson 24). Its forecast is the last value, and its error after \(h\) periods sums \(h\) shocks at full weight, with variance \(h\sigma^2\), so its band, \(\pm 1.96\,\sigma\sqrt{h}\), keeps widening (Figure 4).

Two panels on the same scale show the 95% forecast band against the horizon h from 1 to 40, with σ = 1. For the AR(1) with φ = 0.56 the half-width is 1.96 at h = 1, 2.35 at h = 4 and 2.37 from about h = 16 on, its limit being 2.37. For the random walk it is 1.96 at h = 1, 3.92 at h = 4, 7.84 at h = 16 and 12.40 at h = 40.
Figure 4. With σ = 1, the AR(1) band stops widening at ±2.37, while the random walk's reaches ±12.40 forty periods ahead and keeps growing. The half-width of the 95% forecast band against the horizon, with \(\sigma = 1\), the parameters known and normal shocks. Top: an AR(1) with \(\phi = 0.56\), the GDP estimate to two places: 1.96 at \(h = 1\), 2.35 at 4 and its limit, 2.37, at 16. Bottom: a random walk, half-width \(1.96\sqrt{h}\): 1.96, 3.92, 7.84 and 12.40 at \(h = 1\), 4, 16 and 40. Computed from the formulas.

9. The pandemic quarter: what the model could not foresee

The pandemic quarters lie outside both samples and show what a band does not cover. Fitted to 1984 Q1 to 2019 Q4 (143 pairs), the AR(1) gives \(\hat\alpha = 0.2448\), \(\hat\phi = 0.5572\) and \(\hat\sigma = 0.5366\). From growth of -2.83% in 2020 Q1, its forecast for 2020 Q2 is

$$ 0.2448 + 0.5572 \times (-2.8277) = -1.33\% , $$

with a 95% band from -2.38% to -0.28%. Growth was -19.93%: an error of -18.60 points, or \(-18.60/0.5366 = -34.7\) residual standard errors, when the largest residual in the 143 quarters fitted was -3.2 residual standard errors (1984 Q2). Fed that fall, the model forecast -10.86% for 2020 Q3; growth was 16.86%, an error of 51.7 residual standard errors. With \(\phi\) positive the rule carries part of every gap forward, so after a fall it forecasts a smaller fall, not a rebound.

The band assumes normal shocks with the variance of 1984 to 2019, and the fall in 2020 Q2 came from the pandemic, not from the series' own past. The pandemic quarters are data, not mistakes; they show that a band speaks only of shocks like those of its sample. We quote no normal tail probability for an error of 35 standard deviations: it would measure how far the normal assumption failed, not how unlikely 2020 was.

10. Common mistakes

  • Giving the forecast without its assumptions. When I marked exam answers on AR(1) forecasts, the biggest mistake was not stating the assumptions in the proofs: answers reached the forecasts and the mean squared error without a detailed proof. Name each where it is used: known \(\alpha\) and \(\phi\) and unpredictable shocks for the forecast, uncorrelated shocks with constant variance for the error variance, normal shocks for the band, \(|\phi| < 1\) for the limits.
  • Taking the intercept for the mean. For GDP growth \(\hat\alpha = 0.25\) but the mean is 0.56%: \(\mu = \alpha/(1 - \phi)\), computed with three or more decimal places, since \(0.25/(1 - 0.56)\) gives 0.57.
  • Applying the rule to the last value at every horizon, or jumping to the mean after one step. From 1.56% the two-step forecast is 0.88%, not 1.12% or 0.56%.
  • "The best forecast is the one closest to the outcome." Best means smallest expected squared error. In 2017 Q1 the forecast was 0.56% and growth was 1.14%.
  • "The error variance grows without limit." For a stationary AR(1) it levels off at \(\sigma^2/(1 - \phi^2)\), a standard deviation of 0.68 points for GDP growth; a random walk's grows as \(h\sigma^2\).
  • "Every outcome fell inside the 95% band, so the model is right." A 95% band should miss about one outcome in twenty; in 2016 to 2019 even the 50% band held 14 of the 16, so the bands were too wide.
  • Reading the band as covering the error in the estimates. It treats them as known, though the 95% interval for \(\phi\) runs from 0.42 to 0.71.

11. 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. An AR(1) fitted by OLS to UK GDP growth over 1984 Q1 to 2019 Q4 has intercept 0.2448 and coefficient 0.5572. What is the estimated mean of the process, in per cent a quarter?

0.2448/(1 + 0.5572) = 0.16 solves μ = α + φμ with the sign of φμ flipped. Moving φμ to the left gives μ(1 - φ) = α, so μ = 0.2448/0.4428 = 0.55.

0.24 is the intercept. The mean of a stationary AR(1) is α/(1 - φ): each quarter keeps 0.5572 of the level and adds 0.2448, and the level settles at 0.2448/0.4428 = 0.55.

0.2448/(1 - 0.5572²) = 0.2448/0.6895 = 0.36 uses the denominator of the variance, 1 - φ². The mean divides by 1 - φ: 0.2448/0.4428 = 0.55.

Correct. For a stationary AR(1) the mean is μ = α/(1 - φ) = 0.2448/(1 - 0.5572) = 0.2448/0.4428 = 0.55% a quarter, more than twice the intercept.

Were you sure?

2. The AR(1) fitted to UK GDP growth over 1984 Q1 to 2019 Q4 has intercept 0.2448, coefficient 0.5572 and an estimated mean of 0.55%. Growth in 2019 Q4 was 0.1606%. What is the forecast of growth in 2020 Q1, in per cent?

0.5572 × 0.1606 = 0.09 leaves out the intercept. The forecast is α + φ y_T = 0.2448 + 0.0895 = 0.33.

0.16 repeats the last value, which would be the forecast of a random walk. With φ = 0.5572 only part of the gap from the mean carries over: 0.2448 + 0.5572 × 0.1606 = 0.33.

Correct. The forecast is 0.2448 + 0.5572 × 0.1606 = 0.2448 + 0.0895 = 0.33: the mean plus 0.5572 times the gap, 0.55 + 0.5572 × (0.16 - 0.55) = 0.33. Growth in 2020 Q1 turned out to be -2.83% as the pandemic began, an error of -5.9 residual standard errors.

0.55 is the mean of the process, the forecast if last quarter carried no information. With φ = 0.5572 it does: the forecast is 0.2448 + 0.5572 × 0.1606 = 0.33.

Were you sure?

3. Growth in 2008 Q4 was -2.14%. Applied to that quarter, the AR(1) fitted to 1984 Q1 to 2015 Q4 (intercept 0.2462, coefficient 0.5616, mean 0.56%) gives a forecast for 2009 Q1 of 0.2462 + 0.5616 × (-2.1430) = -0.96%. How is the forecast for 2009 Q2 found?

Correct. Growth in 2009 Q1 is not observed at the end of 2008 Q4, so it is replaced by its forecast: 0.2462 + 0.5616 × (-0.9573) = -0.29%. The gap from the mean shrinks by the factor 0.5616 each quarter, from -2.70 to -1.52 to -0.85 points.

Applying the rule to -2.14 again gives -0.96, the one-step forecast a second time. Two quarters ahead the rule is applied to the value one quarter ahead, which at the end of 2008 is its forecast, -0.96: the result is -0.29%.

The forecast approaches the mean without reaching it: the gap shrinks by the factor 0.5616 each quarter, from -2.70 to -1.52 to -0.85 points. The two-step forecast is 0.2462 + 0.5616 × (-0.9573) = -0.29%.

Were you sure?

4. The AR(1) fitted to UK GDP growth over 1984 Q1 to 2015 Q4 has an estimated mean of 0.56%, coefficient 0.5616 and residual standard error 0.5598 points. A forecaster applies it to a quarter of -2.14% growth and looks further and further ahead. What happens to the forecast and to the standard deviation of its error?

That is how a random walk behaves. With φ = 0.5616 the gap from the mean shrinks each quarter, and 0.5616 to the power 16 is 0.0001, so sixteen quarters ahead the forecast is 0.56%; the error's standard deviation stops at 0.68 points.

Correct. The forecast's gap from the mean is 0.5616 to the power h times today's gap of -2.70, which is -0.0003 sixteen quarters ahead, so the forecast becomes the mean. The error variance rises towards σ²/(1 - φ²), whose square root is 0.5598/√(1 - 0.5616²) = 0.68 points, the standard deviation of the process.

The forecast does move to the mean, but the error variance does not grow without limit. Each extra shock enters with a weight 0.5616 to the power j, which shrinks, so the standard deviation levels off: 0.56 points one quarter ahead, 0.64 two ahead and 0.68 from five quarters on.

Were you sure?

5. For the AR(1) fitted to UK GDP growth over 1984 Q1 to 2019 Q4, the coefficient is 0.5572 and the residual standard error 0.5366 points, both treated as known. What is the variance of the error of the forecast made two quarters ahead, in squared points?

Correct. The two-step error is the shock two quarters ahead plus φ times the shock one quarter ahead. The shocks are uncorrelated, so the variances add, with φ squared: σ²(1 + φ²) = 0.2879 × 1.3105 = 0.38. Its square root, 0.61 points, is the error's standard deviation.

0.2879/(1 - 0.5572²) = 0.2879/0.6895 = 0.42 is the variance of the process, the limit the error variance approaches far ahead. Two quarters ahead only two shocks are unknown: σ²(1 + φ²) = 0.2879 × 1.3105 = 0.38.

2 × 0.2879 = 0.58 gives both shocks a weight of one. The shock one quarter ahead reaches the quarter after only through the share φ, so its variance is multiplied by φ²: 0.2879 × (1 + 0.3105) = 0.38.

0.2879 × (1 + 0.5572)² = 0.70 adds the weights before squaring. The variance of a sum of uncorrelated terms is the sum of their variances, so each weight is squared on its own: 0.2879 × (1 + 0.3105) = 0.38.

Were you sure?

12. Three questions about AR(1) forecasts

An AR(1) model makes each value an intercept plus a share φ of the previous value plus an unpredictable shock. When it is stationary, which needs φ between -1 and 1, its mean is the intercept divided by 1 - φ. For UK GDP growth, 1984 to 2015, φ is estimated at 0.56 and the mean at 0.56% a quarter.

Put the last observed value into the fitted rule: the one-step forecast is the intercept plus φ times that value. For two steps, apply the rule to the one-step forecast, and so on; for a stationary AR(1) the forecasts move back towards the mean. With growth of 0.55% in 2015 Q4, the forecast for 2016 Q1 was 0.56%.

Each extra period adds a shock to the forecast error, so unless φ = 0 its variance rises: σ² one step ahead, σ²(1 + φ²) two steps ahead. For a stationary AR(1) it levels off at the variance of the process; for UK GDP growth the 95% band widens from ±1.10 to ±1.33 points. A random walk's band keeps widening.

13. Where next

Stuck on a forecasting question? Send it

I tutor econometrics one-to-one, from a first regression through to time series, AR models and forecasting. Bring the question you are stuck on 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. UK GDP: Source: Office for National Statistics, series ABMI; growth computed from ABMI. Contains public sector information licensed under the Open Government Licence v3.0. ABMI is GDP in chained volume measures, seasonally adjusted, £ million, as published on 30 September 2026 and retrieved on 10 October 2026; growth is 100 × (GDP this quarter / GDP last quarter - 1), unrounded. The AR(1) is fitted by OLS to 1984 Q1 to 2015 Q4 (128 quarters, 127 pairs) and, in section 9, to 1984 Q1 to 2019 Q4 (144 quarters, 143 pairs); the forecasts for 2016 Q1 to 2019 Q4 are made at 2015 Q4 with the estimates treated as known. The file the code reads is uk-gdp-growth.csv. Figures 1 and 4 are computed from the formulas. Figure 3 is simulated: for each \(\phi\) in 0, 0.9 and 0.99, a fresh numpy default_rng(2026); first the 10,000 forecast origins, y_T = rng.standard_normal(10000) / sqrt(1 - phi**2), drawn from the stationary distribution; then eps = rng.standard_normal((10000, 40)), row i holding the 40 future shocks of path i; each path follows \(Y_{T+h} = \phi Y_{T+h-1} + \varepsilon_{T+h}\) from \(Y_T = y_T\), the forecasts follow the same recursion without the shocks, and the variance of the errors is taken across the 10,000 paths with divisor R - 1. 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