Title

xtpstat -- Panel stationarity tests robust to cross-sectional
dependence: Yin-Wu (2000), Bai-Ng (2005) PANIC, and Hadri-Kurozumi (2012)
cross-section-augmented KPSS combination tests

Syntax

xtpstat varname [if] [in] [, options]

The data must be xtset as a strongly balanced panel.

method(string) CSD correction: yinwu (none), panic
(principal components, default), or hkca (cross-section averages)

model(string) deterministic terms: constant or trend (default)

kmax(#) maximum number of common factors (PANIC only; default 5)

icfactor(#) factor-number criterion: 1=PCp, 2=ICp (default), 3=AIC/BIC

factors(#) override the estimated number of factors with a fixed value

Description

xtpstat implements the PANIC panel stationarity test of Bai and Ng
(2005) — the stationarity counterpart of xtpanic. Common factors are
extracted from the differenced data by principal components; the idiosyncratic
component is cumulated and tested for stationarity with a KPSS statistic;
and the resulting p-values are combined into the panel statistics Ppc
(Fisher chi-square), Pm (standardized normal), Zpc (inverse-normal /
Choi) and W (Hadri-type LM). Removing the common factors first makes the
test robust to strong cross-sectional dependence of an unknown form.

The long-run variance for the KPSS statistic is estimated with the
Sul-Phillips-Choi (2003) prewhitened Bartlett kernel; p-values use the paper's
response surface. xtpstat is part of the xtpdroot
library. See help xtpstat methods for the formulas.

Options

model(string): constant (level stationarity) or trend
(trend stationarity, the default).

kmax(#), icfactor(#): the maximum number of common factors
(default 5) and the Bai-Ng (2002) criterion (default ICp). The number of factors
is the ICp2 minimizer.

factors(#) fixes the number of common factors at # instead of
estimating it (useful for replication or sensitivity analysis).

Examples

Trend-stationarity of a panel with common factors removed:

. xtset country year

. xtpstat lco2, model(trend)

Fix the number of factors at 3 (e.g. to match a published study):

. xtpstat lco2, model(trend) factors(3)

Stored results

xtpstat is rclass and stores:

Scalars

r(Ppc), r(Ppc_p) Fisher chi-square panel statistic and p-value

r(Pm), r(Pm_p) standardized panel statistic and p-value

r(Zpc), r(Zpc_p) inverse-normal (Choi) statistic and p-value

r(W), r(W_p) Hadri-type LM statistic and p-value

r(nf) number of common factors

r(N), r(T) panel and time dimensions

Matrices

r(units) per-unit id, KPSS statistic, p-value

Interpreting the output

The null is that the idiosyncratic component is stationary. All of Ppc,
Pm and W reject for large values (and Zpc for very negative
values), i.e. reject stationarity in favour of a unit root. Because the common
factors are removed first, a rejection reflects genuine non-stationarity in the
unit-specific dynamics rather than shared co-movement.

References

Bai, J., and S. Ng. 2004. A PANIC attack on unit roots and cointegration.
Econometrica 72: 1127-1177.

Sul, D., P. C. B. Phillips, and C.-Y. Choi. 2005. Prewhitening bias in HAC
estimation. Oxford Bulletin of Economics and Statistics 67: 517-546.

Nazlioglu, S., et al. 2021. Convergence in OPEC carbon dioxide emissions.
Economic Modelling 100: 105498.

Author

Dr Merwan Roudane

merwanroudane920@gmail.com

github.com/merwanroudane

Faithful Stata port of the GAUSS routine BNG_PANICkpss by S. Nazlioglu;
validated byte-for-byte against the GAUSS output on the OPEC CO2 data (P=61.710;
subgroup P=9.152). Part of the xtpdroot library.