PERRONBREAKS Procedure |
@PERRONBREAKS is a procedure for a very general approach to handling unit root tests allowing for structural breaks. It is based upon the set of models in Perron(2006), but with extension to allow more than one break.
@PerronBreaks(options) series start end
Wizards
This is included as one of the tests in the Time Series—Unit Root Test Wizard.
Parameters
|
series |
series to analyze |
|
start, end |
range of series to use. By default, the defined range of series. |
Options
BREAKS=Number of breaks [1]
Number of breaks (allows for any positive number)
AO=[NONE]/MEAN/CRASH/JOIN/BREAK
IO=[NONE]/MEAN/CRASH/BREAK
AO are for "additive outliers" which change immediately the level (trend) of the series. IO are for "innovational outliers" which add a shift to the error term and thus affect the series more gradually. CRASH is an abrupt change in the level of the series, with the trend rate unchanged before and after the break(s). (Note that a "crash" could be an increase). JOIN is a change in the trend rate, with no immediate change in the level. BREAK is a change in both the level and the trend rate, simultaneously. All three of those assuming trending data. The MEAN option is for an abrupt change in the level of a non-trending series.
The augmenting lags are selected separately for each test value(s) of the breaks. These are controlled by the following options:
LAGS=(maximum) number of lags on the auxiliary regression [1]
METHOD=[FIXED]/GTOS/AIC/BIC/HQ
SLSTAY=significance level to keep lag in model with METHOD=GTOS [.10]
If METHOD=FIXED, the number of lags on the LAGS option is included in all regressions. If METHOD=GTOS (general-to-specific), lags are dropped from the end so long as the significance level of the t-statistic is greater than the SLSTAY value. The other three choose lags by minimizing the selected information criterion.
PI=fraction of entries on each end of data to exclude as break points[.10]
This is also the minimum gap between breakpoints if BREAKS>1.
[PRINT]/NOPRINT
TITLE=title for report ["Unit Root Test, Series x"]
Variables Defined
|
%CDSTAT |
test statistic (minimum t-stat) (REAL) |
|
%MINENT |
entry of the (lower) break giving the minimum t (INTEGER) |
|
%MAXENT |
entry of the (higher) break for the 2 break model (INTEGER) |
|
%%SHIFTS |
RECT of estimated shifts (one column for each break). |
|
%%AUTOP |
number of lags selected (INTEGER) |
Example
This does unit root tests on a very long stretch of annual data for log US real GDP. The first model is an IO "crash" model, that is, it allows for a sudden change in the level without a change in the trend rate of growth. The second model is an AO "break", so both the level and the trend rate are allowed to change at the break point. Note that, in most cases, you should have a fairly good idea of what type of break is most likely in the series. The difference between AO and IO is often subtle, but between crash and join isn't. US GDP over this range has a rather clear drop at the start of the depression, so a join model wouldn't be capable of handling that, hence either crash or break. US GDP over the post-war era, by contrast, has nothing so dramatic, but the rate of growth does seem to slow, so a join model would make more sense as the alternative.
The first chooses the number of lags using GTOS and the second uses BIC. Particularly with the AO model, it's a good idea to use one of the criteria (rather than GTOS) because the AO model adds two parameters per lag, so a test just on the lagged difference that is done by GTOS won't take that into account.
cal(a) 1900
open data sample.rat
data(format=rats) 1909:1 1970:1 gdp
set lgdp = log(gdp)
@perronbreaks(io=crash,lags=10,method=gtos) lgdp
@perronbreaks(ao=break,lags=10,method=bic) lgdp
Sample Output
This is the output from the example above. Both choose 1928:1 as the break point. The practice in break point models in the economics literature is that the listed break point is the final entry before the change, so the crash in level hits 1929:1.
Unit Root Test, Series LGDP
Regression Run From 1920:01 to 1970:01
Observations 60
IO Model: Crash with 1 breaks
With 8 lags chosen from 10
Selection by AIC
Variable Coefficient T-Stat
Y{1} -0.603902 -5.175617
Break point(s)
1928:01
Unit Root Test, Series LGDP
Regression Run From 1920:01 to 1970:01
Observations 61
AO Model: Full Trend Break with 1 breaks
With 1 lags chosen from 10
Selection by BIC
Variable Coefficient T-Stat
Y{1} -0.325040 -4.215948
Break point(s)
1928:01
Copyright © 2025 Thomas A. Doan