13A.10 Structural breaks: Chow, sup-F, CUSUM and Bai–Perron
Motivation
The most expensive event in stat arb is a relationship that stops holding. Break tests ask whether parameters changed. They are also easy to misuse: the classic Chow test is valid only if the break date was chosen without looking at the data.
13A.10.1The Chow test#
Setup
, , of dimension (including a constant), i.i.d. independent of the regressors. Split at a known date : regime 1 is ( observations), regime 2 is (), each with . : .
Proposition 13A.15Chow 1960
Let be the sum of squared residuals of the pooled regression and that of regime alone. Under ,
Proof
Stack the unrestricted model as with (block-diagonal; the regressors of regime ) and . Its residual sum of squares is because the blocks do not interact. The restricted model is with , and . Let be the orthogonal projections onto these spaces, of ranks and , and . Under , , so and . Because , is the orthogonal projection onto the orthogonal complement of inside , of rank , and . By Cochran's theorem, and , independent. Their ratio, each divided by its degrees of freedom, is .∎
Equivalently, (13A.37) is the -test that the coefficients on the interaction regressors are zero in a regression on , . m13a_breaks.py checks the two agree to against statsmodels.
Assumptions that matter in markets
- Same error variance in both regimes. If volatility also changed (it usually does), use a Wald test with heteroskedasticity-robust covariance (or HAC, M04).
- Stationary regressors. In a levels regression of one I(1) price on another, does not have the distribution (13A.3). Test breaks in return regressions, or use a cointegration test that allows a break (Gregory and Hansen 1996, below).
- The date must be chosen in advance, on economic grounds: a merger announcement, a duty change, a regulatory circular.
13A.10.2Unknown break date: sup-F#
If the date is chosen because the rolling-beta plot looks different there, the Chow test at that date is a maximum of many correlated statistics and its null distribution is not . Quandt (1960) proposed the maximum; Andrews (1993) derived its distribution: with the candidate dates restricted to (trimming is standard), converges to the supremum of a normalised squared tied-down Bessel process, and Andrews tabulates the critical values.
Size, power and snooping (m13a_breaks.py, computed for this course; , i.i.d. , , ):
| Experiment | Result |
|---|---|
| Chow at the true mid-sample date, (size, nominal 5%), 4,000 draws | 4.65% |
| Power, / 0.3 / 0.5 (2,000 draws each) | 22.9% / 45.8% / 87.8% |
| Noncentral- approximation, noncentrality | 22.3% / 45.4% / 89.1% |
| No break; choose the date maximising ; use the Chow -value (2,000 draws) | rejects 37.1% |
| 95% quantile of (15% trimming) / of | 5.92 / 3.04 |
Picking the break date by eye and then quoting a Chow -value turns a 5% test into a 37% test. The simulated 5.92 is a finite-sample stand-in for Andrews' asymptotic critical value.
13A.10.3CUSUM#
Brown, Durbin and Evans (1975) monitor the recursive residuals
where is OLS on the first observations. Under with normal errors, the are i.i.d. : each is the one-step forecast error , which has variance , and it is uncorrelated with all earlier observations, hence with earlier 's. They also satisfy , the full-sample residual sum of squares (a test checks this). The CUSUM statistic
with at 5%, is a random walk under and drifts after a change in the intercept. CUSUM needs no break date and works in real time, which suits monitoring a live spread. It has weak power against changes in variance and against breaks late in the sample (the CUSUM of squares addresses the former).
13A.10.4Several breaks: Bai–Perron#
Bai and Perron (1998, 2003) allow breaks at unknown dates. For given , the dates minimise the total SSR over all partitions with a minimum segment length . The minimisation is a dynamic programme over the segment SSRs, each computable recursively, so it is feasible for thousands of observations. They provide: tests of breaks against none; "double maximum" tests (UDmax, WDmax) against an unknown number; sequential tests; and confidence intervals for the dates. Choose the number of breaks with the sequential test or BIC. Implementations exist in R (strucchange); in Python the dynamic programme is a short exercise.
Breaks in a cointegrating relation Gregory and Hansen (1996) test the null of no cointegration against cointegration with one shift in the intercept (or slope) at an unknown date: run the EG residual ADF for every candidate date and take the minimum, with their own critical values. A pair that "was cointegrated until a merger" is exactly the alternative they consider.
13A.10.5Applying it#
- M10's gold–real-yield beta. M10 · 10.6.2 suggests testing for a break around 2022. Regress weekly gold on DFII10 and DXY (stationary regressors). If the date is fixed in advance on economic grounds (the freezing of Russia's reserves in early 2022 is the usual candidate), the Chow test (13A.37), or its HAC Wald version, applies. If the date was found by looking at the rolling beta, use critical values or Bai–Perron.
- HDFC Bank on ICICI Bank returns around the merger. Computed for this course from Yahoo adjusted closes: regress HDFC Bank daily log returns on ICICI Bank's, from 1 Jul 2021 to 30 Jun 2025, with the date fixed in advance at 3 Jul 2023 (the first trading day after the merger's effective date of 1 Jul 2023). The slope was 0.496 before and 0.491 after; , . The daily return correlation moved from 0.50 to 0.47. The day-to-day co-movement did not break. 13A.13.2 shows what did.