Structural change analysis: serial F-statistics test on raw or differenced data?

I am working with a short time series consisting of 21 annual data points. I wish to analyze the time series for structural changes, and I have been exploring the strucchange package in R (Zeileis et al. 2002).

If I am going to perform formal statistical tests of breakpoints, is it appropriate to use the serial F-statistic test (strucchange::Fstats), which tests for the existence of a single breakpoint against the null hypothesis of no breakpoints, on my highly non-stationary raw time series data, or must I first difference my data to stabilize the mean? To rephrase in R syntax, is the serial F-stat test valid on the model lm(y ~ x), or must I instead difference y and run the test on lm(diff(y) ~ 1)? I get much higher F-stats (hence lower p-values) for the former test than for the latter, but I want to make sure I am using it correctly. Given the shortness of my time series, I am reluctant to sacrifice the first data point for differencing.

• If it could be stationary around a piecewise constant mean, then y ~ 1 should be used for the testing and dating "in levels".
• However, if the time series is integrated and you are looking for changes "in the growth rates or returns", then r <- diff(y) or r <- diff(log(y)) should be used with r ~ 1 in testing and dating.
• I would guess that r <- diff(log(y)) is the most intuitive transformation here, corresponding to returns or relative changes. And then bp <- breakpoints(r ~ 1) might pick up the two changes your are after. And then coef(bp) might show a first segment with positive growth, a second segment with negative growth, and a fairly stable third segment. Alternatively, you could try bp <- breakpoints(log(y) ~ seq_along(y), h = 4) where the segment-specific slopes in the deterministic trends should be similar to the segment-specific intercepts from the model in returns. – Achim Zeileis May 1 '18 at 0:02