13A.5 The Engle–Granger two-step
Motivation
The simplest test for a pair: estimate the hedge ratio, then test the residual for a unit root. The catch is that the second step needs its own critical values.
13A.5.1Step 1: the cointegrating regression and superconsistency#
Run
by OLS. If the pair is cointegrated, is stationary.
Proposition 13A.5superconsistency
If is and is , then .
Proof sketch
. The denominator is (Proposition 13A.3). The numerator is a sum of products of an and an variable: converges to a functional of the form , where is the Brownian motion of 's partial sums and a one-sided long-run covariance. So the numerator is and the ratio .∎
Superconsistency makes the estimation error in negligible compared with the spread itself. It does not make OLS -statistics on valid: the limit is non-normal and has a second-order bias from (endogeneity and serial correlation). For inference on , use dynamic OLS (add leads and lags of ; Stock and Watson 1993) or fully modified OLS (Phillips and Hansen 1990).
13A.5.2Step 2: testing the residual, with the right critical values#
Apply the ADF regression to without deterministic terms (they are absorbed in step 1, and has mean zero by construction):
: no cointegration ( has a unit root). Reject for large negative -ratios on .
Why DF critical values are wrong here Under the step-1 regression is spurious: is a random variable (Proposition 13A.3), not an estimate of anything. And OLS picks to minimise , i.e. to make look as stationary as possible. Both effects push the statistic to the left. Its limit is a functional of an -dimensional Brownian motion that depends on the number of variables and on the deterministic terms in step 1 (Phillips and Ouliaris 1990). MacKinnon (2010) gives response surfaces; statsmodels.tsa.stattools.coint uses them.
| Engle–Granger, constant in step 1 | 1% | 5% | 10% |
|---|---|---|---|
| (a pair), asymptotic (MacKinnon 2010) | −3.90 | −3.34 | −3.04 |
, simulated , 5,000 draws (m13a_adf.py) |
−3.87 | −3.35 | −3.06 |
| , asymptotic (MacKinnon 2010) | −4.29 | −3.74 | −3.45 |
| For comparison, DF with constant | −3.43 | −2.86 | −2.57 |
A residual statistic of −3.10 for a pair rejects at 10% and not at 5%. With DF critical values it would wrongly be called significant at 5%.
Exercise link engle_granger in m13a_adf.py must reproduce statsmodels.coint(trend="c", maxlag=1, autolag=None) exactly. A test checks that, for independent random walks, the EG critical value rejects about 5% of the time while the DF critical value rejects noticeably more.
13A.5.3Weaknesses#
- Normalisation. Regressing on and on gives different residuals and can give different test conclusions in finite samples. Johansen's method (13A.6) is invariant to it.
- One vector only. With assets, EG finds one combination and cannot tell whether there are more.
- Multiple testing. Screening 50 bank and NBFC stocks gives pairs. At a 5% level, about 61 will "cointegrate" by chance if none truly do. Apply the multiple-testing machinery of M04 (Bonferroni or Holm for family-wise error, Benjamini–Hochberg for false discoveries), and above all test out of sample.