*! xtbfkbreak version 1.0.0 11jul2026

Title

xtbfkbreak methods -- Estimation mathematics behind
xtbfkbreak

This page documents the estimator implemented by xtbfkbreak, mapping each
step to the equations of Baltagi, Feng & Kao (2016, 2019). For syntax, options
and interpretation see xtbfkbreak.

Overview

The estimand is a heterogeneous panel with slope coefficients that shift at one or
more common unknown dates, and cross-sectional dependence coming from an
unobserved multifactor error structure. The estimator has three steps:
(1) partial the factors out with cross-section averages (CCE); (2)
estimate the break date(s) by least squares on the transformed data; (3)
estimate the regime slopes panel-by-panel and average them (mean group). A break
in the factor loadings requires no extra machinery because CCE removes the
factors rather than estimating them.

Notation and model

For i=1,...,N and t=1,...,T, with a slope break at k0 and (possibly
different) loading break at k1:

y(it) = x(it)'b(i)(k0) + e(it),

e(it) = g(i)(k1)'f(t) + eps(it),

x(it) = G(i)'f(t) + v(it),

where b(i)(k0) equals b1(i) for tĈk0 and b2(i)
afterwards, f(t) is an m-vector of unobserved factors, g(i) and
G(i) are heterogeneous loadings, and eps and v are idiosyncratic
errors. In the 2019 model eps(it) and v(it) may be correlated, so
x(it) is endogenous both through f(t) and directly through
Cov(eps,v)!=0. Stacking over t gives, for each
panel, Y(i) = X(i)b(i) + F g(i) + eps(i).

Step 1: the CCE transformation

Collect w(it)=(y(it),x(it)',z(it)')' and form the
cross-section averages wbar(t). Combining the equations,
wbar(t) = C(k0,k1)'f(t) + ubar(t), where the averaging matrix
C inherits the regime structure of the model. By Pesaran's Lemma 1 the
averaged idiosyncratic terms vanish, ubar(t) {&rarr} 0 as N{&rarr}{&infin},
regardless of the correlation between eps and v. Hence wbar(t) is a
valid proxy for f(t) even under endogeneity.

Let W be the T×(p+1+...) matrix whose columns are a
constant, the cross-section averages of y, of the regressors, and of the
instruments, and (optionally) # lags of these. Define the annihilator

Mw = I(T) - W(W'W)^(-1)W'.

Premultiplying the model by Mw wipes out F: each element of
Mw F g(i) is Op(1/sqrt(N)) and vanishes (BFK 2016 Lemma 6; BFK 2019
eq. 19). Why the constant is in W: under a break the factor enters
in two directions, f and f×1{t>k}, so
W must span {1, f, f×1{t>k}};
including the constant (Pesaran's augmentation on [1,ybar,xbar]) provides
the extra dimension and removes the regime-split factor. Omitting it biases the
slopes while leaving the break date consistent. When nocce is used,
Mw=I.

Step 2: estimating the break dates

On the transformed data the break date solves

khat = argmin(k) {&Sigma}(i) SSR(i)(k),

where SSR(i)(k) is the residual sum of squares from regressing the
transformed y on a regime-split design (BFK 2016 eq. 24; BFK 2019 eq. 21).
The search is by OLS by default: following Perron & Yamamoto (2015), the OLS
break estimator stays consistent even when the regressors are endogenous, because
a shift in the true slope implies a shift in the OLS pseudo-true value at the same
date. Candidate dates are restricted so every regime has at least
trim()×T periods. With multiple breaks the dates are added one at a
time (Bai 2010): each new break maximises the reduction in the pooled SSR given
the breaks already found. ivbreak replaces OLS by 2SLS in this step (BFK
2019, Fig. 2), which is offered only for comparison.

Super-consistency. In a single time series only the break fraction
k0/T is estimable. Pooling N series that share the break lets the pooled
objective concentrate on the exact date: P(khat=k0){&rarr}1 (BFK
2016 Theorem 1; BFK 2019 Theorem 1). This is what lets Step 3 treat the date as
if known.

Step 3: the regime slopes

Given khat, the design is built regime by regime and then transformed:
for each regime r the raw block [1{reg r},
x×1{reg r}] is premultiplied by Mw
(transform-after-split, BFK eq. 20-23), giving each regime its own intercept and
slopes. For panel i the slope block is

bhat(i) = (Xtil(i)'Xtil(i))^(-1)Xtil(i)'Ytil(i) (exogenous),

or the 2SLS analogue under endogeneity (below). The mean-group estimator and
its variance are

bMG = (1/N){&Sigma}(i) bhat(i),

Var(bMG) = (1/[N(N-1)]) {&Sigma}(i) (bhat(i)-bMG)(bhat(i)-bMG)',

the non-parametric MG variance of Pesaran (2006). Because khat is
super-consistent, bMG has the same limiting distribution as if k0 were
known (BFK 2016 Prop. 2; BFK 2019 Prop. 1), so no correction for the estimated
date is needed. The reported structural-change contrast {&delta} = b2-b1
uses the corresponding block of Var(bMG).

Endogeneity and the IV equivalence

Under endogeneity Step 3 uses per-regime 2SLS with instruments Ztil=Mw
Z (the exogenous regressors instrument themselves). xtbfkbreak transforms
everything by Mw first and then runs 2SLS. This is numerically
identical to BFK (2019) eq. 23, which projects on the instruments and the
cross-section averages W: since Pw Mw=0 one has
P[Z,W](Mw X) = P(Mw Z)(Mw X), and because the fitted values lie
in the range of Mw the two estimators coincide. In words, the cross-section
averages enter the first stage implicitly through Mw. A practical
consequence: an instrument helps only through the part of it left after Mw
and the regime intercepts remove the factors and the fixed effect - it must move
the regressor's idiosyncratic component (see the
instruments remark).

Breaks in the factor loadings

A break in g(i) at k1!=k0 is handled automatically. Because
CCE removes the factors rather than estimating them, a loading break only enlarges
the effective factor space (Breitung & Eickmeier 2011); as long as the
rank condition holds with the enlarged set, Mw
still wipes the factors out and neither the break date nor the slopes are affected
(BFK 2019, Sec. 3.2). This is the key point that distinguishes the CCE route from
interactive-fixed-effects approaches that must detect and model the loading break.

Asymptotics and requirements

Results are joint (N,T){&rarr}{&infin} with sqrt(T)/N{&rarr}0. The
break-magnitude condition {&phi}(N){&rarr}{&infin} rules out no-break-in-any-series;
the rank condition requires mĈp+1 in each regime with non-zero mean
loadings. The mean-group standard errors are reliable only for reasonably large
N. The command does not test for the number of breaks nor report a
confidence interval for the date; see the guidance under
Remarks.

Equation map

Command step Paper equation

CCE annihilator Mw BFK16 eq. 20; BFK19 eq. 19

Pooled-SSR break search BFK16 eq. 24; BFK19 eq. 21

Super-consistency of khat BFK16 Thm 1; BFK19 Thm 1

Regime slopes (CCE) BFK16 eq. 23

Regime slopes (CCE-IV) BFK19 eq. 23-24

Mean group + MG variance Pesaran (2006); BFK16 Prop. 2

Loading-break robustness BFK19 Sec. 3.2, fn. 4

Multiple breaks (sequential) BFK16 Sec. 5 (Bai 2010)

Author

Dr Merwan Roudane

merwanroudane920@gmail.com

github.com/merwanroudane

Back to xtbfkbreak.