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)

  • $\begingroup$ After more reading, I found that Chow tests can be used to check for structural breaks in regression models. However I'm not sure if / how that would help since I would need to check for stationarity in the first place anyway (before doing the regression). Then if I believe the stationarity test I would know where the potential breaks are for $X$ and $Y$ (so another test would be redundant...). I believe I must check if my series are stationary before trying to model them, is this correct? $\endgroup$
    – arroba
    Commented Jul 14, 2015 at 7:39
  • $\begingroup$ Just a thought for the model - a hidden markov model where the time-series parameters were linked to the hidden markov state. I'd encourage you to question how much additional value there is by modeling the entire system vs finding the change and modeling subsets where things are more stable. $\endgroup$
    – Ben Ogorek
    Commented Nov 22, 2015 at 2:56
  • 1
    $\begingroup$ I would say structural changes make a lot of sense in economic data! If you know they contain a break then you need to use unit root tests that can accommodate this as the ADF test is biased towards the null of a unit root in case of breaks. You say you find evidence of breaks but not unit roots. The solution is simply to model the break with a broken trend, i.e. add a trend for each period. You can also try to estimate the model and do a recursive estimation to see if the estimates are stable over time. $\endgroup$
    – Plissken
    Commented Oct 21, 2016 at 21:55
  • $\begingroup$ Please add a graph of your series or post your data. It makes it easier for us to help you. Also, do the breaks coincide with major economic events? Its always a good idea to check the economic calendar to see if the breaks coincide with some major event. This motivates the modelling approach as well. $\endgroup$
    – Plissken
    Commented Oct 21, 2016 at 21:56
  • 2
    $\begingroup$ Please see stats.stackexchange.com/questions/251480/… which discusses practical ways to identify the cause for the symptom of "structural breaks" . @BenOgorek is on the right track with his sage comment. $\endgroup$
    – IrishStat
    Commented Dec 25, 2016 at 13:01

1 Answer 1


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

See also the very useful strucchange vignette.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.