*! version 1.0.0 19jul2026

Title

regbreak -- Estimation and inference for structural breaks in the
coefficients and error variance of a linear regression

Syntax

regbreak depvar [indepvars] [if] [in]
[, options]

Model
x(varlist) regressors whose coefficients are constant across
regimes (partial structural change model); indepvars are those whose
coefficients change across regimes.

noconstant suppress the changing intercept.

maxb(#) maximum number of coefficient breaks; default maxb(5).

maxv(#) maximum number of variance breaks (joint mode); default maxv(2).

trim(#) trimming ; one of 0.05, 0.10,
0.15, 0.20, 0.25; default trim(0.15).

Procedure
joint run the joint variance+coefficient tests of Perron,
Yamamoto & Zhou; the default runs the Bai & Perron (1998) coefficient-break
analysis.

ic(string) information criterion selecting the number of breaks:
BIC, LWZ or KT; default KT.

fixn(#) estimate a model with a pre-specified number of breaks.

signif(#) significance level for sequential selection: 1=10%,
2=5%, 3=2.5%, 4=1%; default signif(2).

Covariance / error structure
robust(#) heteroskedasticity- and autocorrelation-consistent
covariance (1) or i.i.d. (0); default 1.

vrobust(#) robust variant for the variance-break statistics (joint
mode); default 1.

prewhite(#) AR(1) prewhitening of the long-run covariance; default
1 (Bai-Perron) or 0 (joint).

hetdat(#) allow segment-specific moment matrices; default 1.

hetvar(#) allow segment-specific residual variances; default 1.

hetomega(#) segment-specific long-run variances for the break-date
CIs; default 1.

hetq(#) segment-specific data moment matrices for the break-date
CIs; default 1.

typek(#) kernel construction for the joint statistics: 0=under
H0, 1=under H1, 2=hybrid; default 2.

Reporting
graph draw the fitted-regime plot (Bai-Perron mode).

gname(name) name for the graph.

level(#) confidence level; default level(95).

depvar and indepvars may contain time-series operators; the data
are treated as an ordered time series.

Description

regbreak estimates and tests for multiple structural changes in a linear
regression. Two complementary procedures are provided in one command:

Default (Bai & Perron 1998) - tests for breaks in the regression
coefficients. It reports the Sup F tests of no break versus a fixed number of
breaks, the UDmax double-maximum test, the
sequential Sup F(l+1|l) tests, and the number of breaks selected by the BIC, LWZ
and KT information criteria. It then estimates the selected model, giving the
break dates with confidence intervals and the regime-specific coefficients with
heteroskedasticity- and autocorrelation-corrected standard errors.

Joint (joint) - Perron, Yamamoto & Zhou tests jointly for
breaks in the error variance and the coefficients. It reports the
Sup LR4 joint statistic, the marginal Sup LR / Sup LR3 (coefficient breaks given
variance breaks) and Sup LR1 / Sup LR2 (variance breaks given coefficient
breaks), the UDmax4 test, and the sequential SeqLR9 / SeqLR10 procedures that
select the number of coefficient and variance breaks and their dates.

The estimation and testing machinery reproduces the authors' reference programs
(the mbreaks R package and the Perron-Yamamoto-Zhou MATLAB code)
numerically. The equation-by-equation correspondence is documented in
help regbreak methods.

Options

Model

x(varlist) lists regressors whose coefficients are held constant across
regimes, turning the model into a partial structural change model. The
indepvars in the command line are the regressors whose coefficients are
allowed to change at every break. With no indepvars and no
noconstant, regbreak fits a pure mean-shift model.

maxb(#) sets the largest number of coefficient breaks considered. The
tabulated critical values allow up to 10 breaks at trim(0.05), 8 at
0.10, 5 at 0.15, 3 at 0.20 and 2 at 0.25.

maxv(#) sets the largest number of variance breaks in joint mode.
Joint critical values are tabulated for trim(0.05) and trim(0.10).

trim(#) is the minimal segment length as a fraction of the sample. It
determines the critical values and the smallest admissible regime.

Procedure

joint switches from the Bai-Perron coefficient-break analysis to the
Perron-Yamamoto-Zhou joint variance-and-coefficient tests.

ic(BIC|LWZ|KT) chooses which information criterion selects the number of
breaks that is then estimated. KT is the modified Bayesian criterion of
Kurozumi & Tuvaandorj (2011); LWZ is Liu, Wu & Zidek (1997); BIC is
Yao (1988).

fixn(#) overrides the information criterion and estimates a model with
exactly # breaks.

Covariance

robust(#), hetdat(#), hetvar(#), hetomega(#),
hetq(#), prewhite(#), vrobust(#) and typek(#) control the
assumptions on the errors used to build the test statistics, the corrected
standard errors and the break-date confidence intervals. See
help regbreak methods for the exact role of
each. Do not set robust(1) when lagged dependent variables enter as
regressors.

Interpreting the output

Bai-Perron mode prints four blocks:

(a) Sup F of no break versus m breaks, with critical values at
10/5/2.5/1%. Stars flag rejection at 10 (*), 5 (**) and 1% (***).

(b) Sequential Sup F(l+1|l): the first l for which the test
fails to reject suggests l breaks.

(c) The number of breaks chosen by BIC, LWZ and KT.

(d) The estimated model: break dates with 95% and 90% confidence
intervals, the global minimized SSR, and the regime-specific coefficients with
corrected standard errors in parentheses.

Joint mode prints the Sup LR4 matrix (rows m coefficient breaks, columns
n variance breaks) with bracketed critical values, the marginal coefficient
and variance tables, UDmax4, and the sequentially-selected numbers of
coefficient and variance breaks together with their estimated dates.

Remarks and practical guidance

Sample size. A break model needs enough observations per regime. With
q changing regressors each segment must contain at least q usable
points; regbreak enforces the trimming and warns when maxb() is too
large for the sample.

Choosing the number of breaks. The sequential Sup F(l+1|l) and the KT
criterion are the most reliable in practice; UDmax is a useful omnibus check that
some break is present. When they disagree, prefer the sequential procedure.

When to use joint. If the residual volatility looks non-constant (for
example an interest-rate or inflation series spanning a change in monetary
regime), the coefficient-only tests can be size-distorted; the joint procedure
separates genuine coefficient shifts from pure variance shifts.

Trimming and critical values. Joint critical values exist only for
trim(0.05) and trim(0.10); a "." in a critical-value cell means the
value is not tabulated for the chosen q, break count or trimming.

Examples

Ex-post real interest rate (mean-shift model)

. regbreak rate, trim(0.15) maxb(5)

. regbreak rate, trim(0.15) graph

Force a two-break model and view its coefficients

. regbreak rate, fixn(2)

A regression with changing slope, constant control

. regbreak inf inflag inffut, x(ygap) prewhite(0) trim(0.10)

Joint variance-and-coefficient tests

. regbreak rate, joint trim(0.10) maxb(3) maxv(2)

Stored results

regbreak (Bai-Perron mode) stores in e():

Scalars

e(nbreak) number of breaks estimated

e(UDmax) UDmax statistic

e(SSR) minimized sum of squared residuals

e(T) number of observations

Macros

e(cmd) regbreak

e(method) Bai-Perron

e(depvar) name of dependent variable

Matrices

e(supF) Sup F statistics

e(supFcv) Sup F critical values

e(seqF) sequential Sup F statistics

e(seqFcv) sequential Sup F critical values

e(IC) breaks chosen by BIC, LWZ, KT

e(date) estimated break dates

e(CI) break-date confidence intervals

e(beta) regime-specific coefficients

e(SE) corrected standard errors

In joint mode e() contains e(supLR4), e(cvLR4),
e(supLR3), e(supLR2), e(UDmax4), e(mcoef) and
e(nvar).

References

Bai, J., and P. Perron. 1998. Estimating and testing linear models with
multiple structural changes. Econometrica 66: 47-78.

Perron, P., Y. Yamamoto, and J. Zhou. Testing jointly for structural
changes in the error variance and coefficients of a linear regression model.

Kurozumi, E., and P. Tuvaandorj. 2011. Model selection criteria in
multivariate models with multiple structural changes. Journal of
Econometrics 164: 218-238.

Liu, J., S. Wu, and J. V. Zidek. 1997. On segmented multivariate
regressions. Statistica Sinica 7: 497-525.

Author

Dr Merwan Roudane

merwanroudane920@gmail.com

github.com/merwanroudane