Introduction
In this blog, we examine the issue of identifying unit roots in the presence of structural breaks.
We will use the quarterly US current account to GDP ratio to compare results from a number of unit root test found in the GAUSS tspdlib library including the:
- Zivot-Andrews (1992) unit root test with a single structural break.
- Narayan and Popp (2010) unit root test with two structural breaks
- Lee and Strazicich (2013, 2003) LM tests with one and two structural breaks
- Enders and Lee Fourier (2012) ADF and LM tests
What is stationarity?
Stationary series have a mean and covariance that do not change over time. This implies that a series is mean-reverting and any shock to the series will have a temporary effect.
In the graph above we compare a stationary, non-stationary, and trend stationary AR(1) series. Looking at the blue stationary series we can see that despite the random shocks, the series fluctuates around its zero mean.
The green line is the same series as the stationary series with an added constant time trend. Though this time-series grows over time, it fluctuates around its constant time trend.
Finally, the orange line is a non-stationary series and has a unit root. It does not revert to a mean or trend line and its stochastic shocks have permanent impacts on the series.
How are structural breaks and stationarity related?
The graph above helps demonstrate the impact of structural breaks on stationarity. The series plotted above shows a structural break in the level and clearly does not revert around the same mean across all time.
Though the series is stationary within each section, most standard unit roots will bias towards non-rejection of the unit root for this series.
This is problematic because different modeling techniques should be used for the unit-root series than the series with a structural break.
Testing for unit roots with structural breaks
A number of different unit root tests have emerged from the research surrounding structural breaks and unit roots. These tests vary depending on the number of breaks in the data, whether a trend is present or not, and the null hypothesis that is being tested.
Today we will compare the results from six different tests, all of which can be found in the GAUSS TSPDLIB library.
Preparing for testing
Before running the tests in the GAUSS TSPDLIB library, we must set-up a number of input parameters. All of the tests, with the exception of the Fourier expansion test, require the same inputs:
- y_test
- Vector, the time-series to tested.
- model
- Scalar, indicates the type of model to be tested.
1 = break in level.
2 = break in level and mean. - pmax
- Scalar, Maximum number of lags for Dy. 0 = no lags.
- ic
- Scalar, the information criterion used to select lags.
1 = Akaike.
2 = Schwarz.
3 = t-stat significance. - trimm
- Scalar, data trimming rate. Not required for the Fourier expansion tests.
- fmax
- Scalar, maximum number of single Fourier frequency. Required only for the Fourier expansion tests.
/*
** Specify input parameters for unit root testing models
*/
// Model A: break in level
model = 1;
// Maximum number of lags for Dy
pmax = 12;
// Maximum number of Fourier
fmax = 4;
// Information Criterion: T-stat significance
ic = 3;
// Trimming rate
trimm = 0.10;
Running the tests
The six tests can be called directly from the GAUSS TSPDLIB library:
// One break ADF test (Zivot & Andrews, 1992)
{ ADF_min, tb1, p, cv } = ADF_1break(y_test, model, pmax, ic, trimm);
// Two breaks ADF test (Narayan & Popp, 2010)
{ ADF_min, tb1, tb2, p, cv } = ADF_2breaks(y_test, model, pmax, ic, trimm);
// Fourier ADF test (Enders & Lee, 2012)
{ ADFstat, f, p, cv } = Fourier_ADF(y_test, model, pmax, fmax, ic);
// One break LM test (Lee & Strazicich, 2013)
{ LM_min, tb1, p, lambda, cv } = LM_1break(y_test, model, pmax, ic, trimm);
// Two breaks LM test (Lee & Strazicich, 2003)
{ LM_min, tb1, tb2, p, cv } = LM_2breaks(y_test, model, pmax, ic, trimm);
// Fourier LM test (Enders & Lee, 2012)";
{ LMstat, f, p, cv } = Fourier_LM(y_test, pmax, fmax, ic);
Testing Results
Test Stat. | Breakdate(s) | $H_0$ | $H_A$ | Conclusion |
---|---|---|---|---|
Zivot & Andrews, 1992 | ||||
-4.48 | 2001Q3 | Unit root series with drift | Stationary process with one-time break in the level | Reject the null at the 10% level |
Narayan & Popp, 2010 | ||||
-5.40 | 1982Q4, 2001Q3 | Unit root series with two level breaks | Stationary process with two level breaks | Reject the null at the 1% level |
Fourier ADF test, Enders & Lee, 2012 | ||||
-2.70 | N/A | Unit root series with unknown number of level breaks | Stationary process with unknown number of level breaks | Cannot reject the null |
One break LM test, Lee & Strazicich, 2013 | ||||
-3.05 | 1993Q1 | Unit root series with one level break | Stationary process with one time level shift | Cannot reject the null |
Two break LM test, Lee & Strazicich, 2003 | ||||
-3.31 | 1993Q1, 2004Q3 | Unit root series with two level breaks | Stationary process with two level shifts | Cannot reject the null |
Fourier LM test, Enders & Lee, 2012 | ||||
-3.38 | N/A | Unit root series with unknown number of level breaks | Stationary process with unknown number of level breaks | Cannot reject the null |
Though not unanimous, our testing results suggest that even with the inclusion of structural breaks, we may not be able to reject the null hypothesis of a unit root for our US current account to GDP ratio data.
Conclusions
Today we've about conducting unit root testing in the presence of structural breaks. After today you should have a better understanding of:
- What it means for data to be stationary.
- How structural breaks can impact unit root testing.
- How to use theGAUSS TSPDLIB library to test for unit roots with structural breaks.
Code and data from this blog can be found here.
References
Enders, W., and Lee, J. (2012). A Unit Root Test Using a Fourier Series to Approximate Smooth Breaks. Oxford Bulletin of Economics and Statistics, 74(4), 574-599.
Lee, J. & Strazicich, M.C. (2003). Minimum Lagrange Multiplier unit toot test with two structural breaks. Review of Economics and Statistics, 85(4), 1082-1089.
Lee, J. & Strazicich, Mark C. (2013). Minimum LM unit root test with one structural break. Economics Bulletin, 33(4), 2483-2492.
Narayan, P.K. & Popp, S. (2010). A new unit root test with two structural breaks in level and slope at unknown time. Journal of Applied Statistics, 37(9), 1425-1438.
Zivot, E. & Andrews, W.K. (1992). Further evidence on the great crash, the oil-price shock, and the unit root hypothesis. Journal of Business and Economic Statistics, 10(3), 251-270.
Well, I conduct several variables in order to test the Narayan and Popp (2010) unit root test.
How To obtain overall model coefficient within its corresponding significance?
I only obtain its basic results.
Most of the unit root tests in the tspdlib library only provide test statistics and critical values as output.
We are planning on updating these procedures to include regression coefficients as output. However, in the meantime, if you email me directly I can assist you in setting up the code to obtain the coefficient estimates.
Erica
Regarding your excellent explanation, I'm interested in the permanent shocks detection in the non-stationary time series, mcp package is one of the methods. Like to know your idea about. Please answer me if it is possible for you.