Page 1 of 2

### Bai and Perron multiple break test

Posted: Mon May 11, 2015 5:58 am
Dear All,

Once a regression has been estimated and you check the stability of diagnostic by applying the Bai and Perron multiple break test how do you interpret the break dates and define the interval to re-estimate the regression according those breaks.
For example after selecting the global maximiser option and obtaining the below output:
Multiple breakpoint tests
Bai-Perron tests of 1 to M globally determined breaks
Date: 02/03/15 Time: 14:41
Sample: 1963Q1 2012Q4
Included observations: 172
Breakpoint variables: C Y LPXIP U
Break test options: Trimming 0.15, Max. breaks 5, Sig. level 0.05
Test statistics employ HAC covariances (Prewhitening with lags = 1,
Allow heterogeneous error distributions across breaks

Sequential F-statistic determined breaks: 5
Significant F-statistic largest breaks: 5
UDmax determined breaks: 2
WDmax determined breaks: 2

Scaled Weighted Critical
Breaks F-statistic F-statistic F-statistic Value

1 * 47.43494 189.7398 189.7398 16.19
2 * 104.8705 419.4820 493.2036 13.77
3 * 84.63619 338.5447 450.3730 12.17
4 * 68.96194 275.8478 413.8995 10.79
5 * 61.48036 245.9214 438.0053 9.09

UDMax statistic* 419.4820 UDMax critical value** 16.37
WDMax statistic* 493.2036 WDMax critical value** 17.83

* Significant at the 0.05 level.
** Bai-Perron (Econometric Journal, 2003) critical values.

Estimated break dates:
1: 1976Q2
2: 1978Q4, 1989Q1
3: 1977Q3, 1985Q4, 1992Q2
4: 1977Q3, 1985Q4, 1992Q2, 2006Q4
5: 1977Q3, 1985Q4, 1992Q2, 1999Q3, 2006Q4

How to I interpret the breakdates and define intervals for each of the breaks?

Any help will be very welcome.

Regards,

Vitor

### Re: Bai and Perron multiple break test

Posted: Mon May 11, 2015 7:11 am
They're the start of the next regime. Normally, you would either use dummy variables, with interactions if necessary or, for fully breaking models, estimate regressions with different samples.

But with EViews, the easiest thing is to the breakls estimator, which will form the equation corresponding to the results from a given break test. You'll specify the estimator the same way that you did the test...

### Re: Bai and Perron multiple break test

Posted: Mon May 11, 2015 7:57 am
Thank you very much Glenn. The Breaks ls option is perfect.

Vitor

### Re: Bai and Perron multiple break test

Posted: Tue May 12, 2015 6:46 am
Dear Gareth,

how can i store the dates?

### Re: Bai and Perron multiple break test

Posted: Tue May 12, 2015 2:15 pm
string bks = eq1.@breaks

### Re: Bai and Perron multiple break test

Posted: Tue Jun 02, 2015 10:30 am
Hello,

This is my first post on this forum, so first hello to everyone! Now let's dig into my little issue

I need to make some "sensibility" testing and check how the breakpoints change when I modify some paramteres such as the triming, covariance parameters etc. when using Bai Perron tests. I create equations this way inside a loop :

equation eq01
eq01.breakls( lots of arguments)

Then I wish to store the breakdates into one big matrix so it makes it easy for me to compare the breakpoints according to the parameters. But the thing is that when I write eq01.@breaks, Eviews tells me that @breaks isn't a member of eq01. Any idea on how to go around that?

Thanks a lot

RaphaĆ«l

### Re: Bai and Perron multiple break test

Posted: Tue Jun 02, 2015 11:32 am
What's the version number and build date of your copy of EViews (Help->About EViews).

### Re: Bai and Perron multiple break test

Posted: Tue Dec 20, 2016 2:19 am
Hello,

I am performing a break least sqaures regression of 25 dependent variables on one indepedent variable ( Y=aX+b). How can i store dates coefficients?

i tried this code
matrix (1,25) dates
for !i=1 to 25
equation eq
equation eq{!i}.breakls(maxbreaks=1) x{!i} c y
colplace(dates,eq.@breaks,!i)
next

but it didn't work.

### Re: Bai and Perron multiple break test

Posted: Tue Dec 20, 2016 9:27 am
I can't see what you're trying to do.

### Re: Bai and Perron multiple break test

Posted: Tue Dec 20, 2016 9:41 am
Hello Gareth,

I have 9 dependent variables (y1...y9) and one independent variable (z). I would like to estimate a break least square (for each of the y on z) and store breakdate, coefficients of regression and the t-stat. (Y{!i}= constant + bz)

The problem is that: for y3 for example i don't have a breakdate. I only have one linear estimation so 1 value of constant and one value of b. So i have matrix size problem. Because my matrix is (4,9) and for y3 i only need 2 rows.

svector(9) svec
matrix(4,9) coefs
matrix(4,9) tstat
for !i=1 to 9
equation eq
equation eq.breakls(maxbreaks=1) y{!i} c x
svec({!i})= eq.@breaks
colplace(coefs,eq.@coefs,!i)
colplace(tstat,eq.@tstats,!i)
next

### Re: Bai and Perron multiple break test

Posted: Tue Dec 20, 2016 10:45 am
Rather than using colplace, loop through the elements of the coefficient vector one by one, storing them into the matrix.

Code: Select all

`for !j=1 to eq.@ncoefscoefs(!j,!i) = eq.@coef(!j)next`

### Re: Bai and Perron multiple break test

Posted: Tue Dec 20, 2016 11:21 am
It works!

Thank you Gareth!!

### Re: Bai and Perron multiple break test

Posted: Sun Dec 03, 2017 8:37 am
Dear Gareth,
I have a large dataset of multiple samples (sorted by id, see attached sample). I wanted to test multiple breakpoints (based on Bai perron test) for each sample and store the coefficients, p-values and break dates for the regression Y=a+b1.x1+b2.x2+b3.x3 Can you suggest me any loop command for that?
Thanks
Sohan

### Re: Bai and Perron multiple break test

Posted: Thu Dec 07, 2017 6:04 am
Dear Gareth/Glenn,
I used following code for the Bai-Perron test for the above data.
matrix(24,10) coefs
matrix(24,10) pvals
matrix(6,10) breaks
for !i=1 to 10
smpl if id=!i
equation eq
equation eq.BREAKLS(METHOD=GLOB,HETERR,SELECT=WDMAX) y C x1 x2 x3
for !j=1 to eq.@ncoefs
coefs(!j,!i) = eq.@coef(!j)
pvals(!j,!i) = eq.@pvals(!j)
breaks(!j,!i)=eq.@breaks(!j)
next
next

Although I was able to store coefficients and pvalues, I couldn't store breaks dates.
`svector(157) svecdatesmatrix(157,4) coefs matrix(157,4) tstatequation eqfor !i=1 to 157equation eq.breakls(maxbreaks=1) y{!i} c x{!i} for !j=1 to eq.@ncoefscoefs(!i,!j)= eq.@coefs(!j)  tstat(!i,!j)=eq.@tstats(!j)svecdates({!i})=eq.@breaksnextnextshow svecdatesshow coefsshow tstat`