Solved – Structural breaks, stationarity and time series modelling

modelingregressionstationaritystructural-changetime series

This is a simplified version of my problem…
Say I have two time series ($X$ and $Y$) and I know that $Y_t$ is somehow dependent on $X_t$ but not on $X_{t-k}$ for any $k > 1$.

Ultimately I want to have a model describing the relationship between $Y$ and $X$. My objective with this model is to describe past values of the system, not to do forecasting.

It seems however that the series have a structural break. Following the work of Kim and Perron I tested each series for unit roots and found none – but I did find breaks.

Just for clarification, in this test I'm assuming each series can be described as:
$$ \text{SERIES}_t = \begin{cases} a + b*t + u_t \;,\;t \leq t_{break} \\ (a + a_{break}) + (b+b_{break})*t + u_t \;,\; t > t_{break} \end{cases} $$
where $a, a_{break}, b, b_{break}$ are constants (which can be $=0$) and $u_t$ is a (potentially ARIMA) noise term. The test checks if the noise $u_t$ has an unit root. Say the results are that $X$ has a break in the mean, $Y$ has a break in the trend and both series are stationary.

My question is, how should I model / regress time series that have structural breaks? Since I found breaks while testing for unit roots, should this somehow be included in the model? The time of the break is different for each series, and I have no idea of how to check the validity / significance of such model anyway. Would it make any sense to try a regression with autocorrelated errors (such as in Hyndman and Athanasopoulos) even though there is evidence of breaks in the series?

(just out of curiosity… if I don't assume the possibility of structural breaks in the series and use standard KPSS or ADF-GLS tests to check for unit roots, the results are quite confusing: both tests reject the null – so KPSS results in an unit root while ADF-GLS results in stationarity)

(also, I know there's a lot of discussion out there about whether structural breaks make sense or not after all, but assume that in this case there's strong visual evidence of a change… you can imagine $X$ is a step function + noise and $Y$ follows an increasing linear trend before the break and switches to fluctuations around a constant after the break)

Best Answer

You can estimate this using the strucchange R package with a simple linear regression of y given x. In your case the slope coefficient equals $b$ before the break, and $b + b_{break}$ after the break.

Using the breakpoints() fct in strucchange this will be something like

bp.mod <- breakpoints(y ~ x, breaks = 1)  # specify 1, also automated possible
summary(bp.mod)
plot(bp.mod)

See also the very useful strucchange vignette.

Related Question