help qnardl

Title

qnardl -- Quantile Nonlinear Autoregressive Distributed Lag model
of Cho, Greenwood-Nimmo, Kim and Shin (2020) with bounds testing, Wald
symmetry tests, dynamic multipliers, CUSUM/CUSUM² stability checks and
post-estimation diagnostics

Syntax

qnardl depvar indepvars [if] [in] ,
decompose(varlist)
tau(numlist)
[options]

Required
decompose(varlist) variables in indepvars to be
partial-sum decomposed into (+) and (−) regimes (Shin/Yu/Greenwood-Nimmo 2014)

tau(numlist) quantile grid, each in (0,1) sorted

Estimator choice
twostep two-step QNARDL: FM-quantile long-run + qreg ECM (default; Cho et al. 2020a)

onestep single-step QNARDL: direct qreg on the URECM (Bertsatos et al. 2022)

step1(type) long-run engine for two-step: fmqr (default; Xiao 2009 via xqcoint) | qr | augfmqr

bwidth(#) kernel bandwidth for FM long-run variance (default 2·T^(1/3))

Lag specification
lags(p q [r]) user-supplied lag orders. p = AR lags of Δy; q = DL lags of Δx⁺/Δx⁻; r = DL lags of Δ(linear regressors)

maxlags(numlist) max lags for IC-based selection; one to three values for pmax, qmax, rmax

bic | aic | hqic information criterion for lag selection (default bic)

dots print every grid point during the IC search

Deterministic factors (Bertsatos 2022 cases I–XI)
noconstant exclude intercept

trendvar[(var)] include a linear trend (uses tsset timevar if no arg)

quadratictrend include a quadratic trend t²

restricted restrict deterministic factors to the long-run equation

case(#) override case inference, force Bertsatos case 1..11

threshold(#|numlist) threshold for partial-sum decomposition (default 0)

exog(varlist) strictly exogenous regressors (e.g. crisis dummies)

Bounds testing and Wald tests
bounds PSS F-test (F_yx, F_x) and t-test (t_y) at each τ with verdict from Bertsatos 2022 CV table

lrsymmetry Long-run sign-symmetry test per τ + JOINT test across all asymmetric regressors

srsymmetry Short-run additive symmetry test per τ + JOINT test

interpercentile Interquartile (3 quartiles) χ² equality of level coefficients across τ

interdecile Interdecile (9 deciles) χ² equality across τ

simulate(#) simulate exact PSS CVs at (T, k) with # Monte-Carlo reps (TODO v1.1)

Dynamic multipliers and stability
multipliers compute cumulative response paths m⁺(h), m⁻(h) per τ

horizon(#) horizon for dynamic multipliers (default 12)

cusum CUSUM and CUSUM² recursive-residual stability tests with 5% Brown-Durbin-Evans bands

cusumtau(#) quantile at which to run CUSUM (default 0.5)

diagnostics post-estimation tests per τ: Breusch-Godfrey, Breusch-Pagan, Jarque-Bera, Ramsey RESET

bglags(#) lag order for the BG serial-correlation test (default 4)

Reporting and graphs
graph produce the standard 3-panel quantile-process plot at end of run

full show the short-run/URECM table for ALL quantiles (default: median only)

noctable suppress coefficient table

noheader suppress header

level(#) set confidence level (default 95)

Description

qnardl estimates the Quantile Nonlinear Autoregressive Distributed
Lag model — a quantile-regression generalisation of NARDL that admits both:

- Sign asymmetry via the partial-sum decomposition of selected
regressors into positive and negative cumulative changes (Shin, Yu &
Greenwood-Nimmo 2014); and

- Locational (quantile) asymmetry by estimating the long-run and
short-run dynamics at user-specified quantiles τ of the conditional
distribution of the dependent variable (Cho, Kim & Shin 2015).

Mathematical specification

Let y_t be the dependent variable and decompose each chosen regressor x_j
into partial sums of positive and negative first differences:

x_jt⁺ = Σ_ max(Δx_js − τ_j, 0)

x_jt⁻ = Σ_ min(Δx_js − τ_j, 0)

where τ_j is the threshold (option threshold, default 0).

The unrestricted error-correction representation (URECM) at quantile τ:

Δy_t = γ(τ) + γ₁(τ)·t + γ₂(τ)·t²

+ φ_y(τ)·y_

+ Σ_j [φ_j⁺(τ)·x_jt-1⁺ + φ_j⁻(τ)·x_jt-1⁻]

+ δ(τ)′·lin_

+ ψ(τ)′·exog_t

+ Σ_ λ_i(τ)·Δy_

+ Σ_j Σ_ [a_ij⁺(τ)·Δx_jt-i⁺ + a_ij⁻(τ)·Δx_jt-i⁻]

+ Σ_j Σ_ ω_ij(τ)·Δlin_

+ ε_t(τ)

The long-run multipliers are:

β_j⁺(τ) = −φ_j⁺(τ)/φ_y(τ), β_j⁻(τ) = −φ_j⁻(τ)/φ_y(τ)

Sign symmetry test: H₀: β_j⁺(τ) = β_j⁻(τ) (equivalently φ_j⁺ = φ_j⁻).
Asymmetry magnitude: β_j⁺(τ) − β_j⁻(τ).

Two estimation strategies

1. Two-step (default, twostep). Following Cho, Greenwood-Nimmo,
Kim & Shin (2020a), the long-run parameters are estimated by FM-quantile
regression (Xiao 2009, via xqcoint) under the re-parameterisation
λ = β⁻, η = β⁺ − β⁻ that kills the asymptotic singularity from the
partial-sum decomposition. The cointegration residual u_hat_(τ) is plugged
into a quantile ECM estimated by qreg. Long-run Wald tests on
β⁺(τ) − β⁻(τ) follow standard χ² because the long-run estimator is
T-consistent and mixed-normal.

2. Single-step (onestep). Following Bertsatos, Sakellaris & Tsionas
(2022 eq. 13), the URECM above is estimated directly by quantile regression at
each τ. PSS-style bounds testing is conducted using simulated critical values
from that paper (cases I–XI, k=0..13, embedded for the most common
configurations).

Bertsatos 2022 deterministic cases

Case I no intercept, no trend

Case II restricted intercept, no trend

Case III unrestricted intercept, no trend (default)

Case IV unrestricted intercept + restricted linear trend

Case V unrestricted intercept + unrestricted linear trend

Case VI / VII intercept + trend in DGP, alternative restrictions

Case VIII intercept + linear + restricted quadratic trend

Case IX intercept + linear + unrestricted quadratic trend

Case X / XI quadratic-trend variants of VI / VII

Examples

Quick start

. tsset t

. qnardl y x1 x2, decompose(x1 x2) tau(0.25 0.5 0.75)

Default two-step (FM-quantile) with full test battery

. qnardl pb zscore dpr growth,
decompose(zscore dpr growth)
tau(0.1(0.1)0.9)
maxlags(6) bic
trendvar
bounds lrsymmetry srsymmetry interpercentile
multipliers horizon(20)
cusum cusumtau(0.5)
diagnostics bglags(4)
graph

Single-step QNARDL with quadratic trend (Bertsatos 2022 case IX)

. qnardl pb zscore dpr growth,
decompose(zscore dpr growth)
tau(0.25 0.5 0.75)
onestep trendvar quadratictrend
exog(crisis_dummy)
bounds lrsymmetry srsymmetry

Replay with the full short-run table at every τ

. qnardl, full

Plot any graph type stand-alone after estimation

. qnardl_graph , type(beta) // β⁺/β⁻ quantile process per variable

. qnardl_graph , type(ect) // φ_y(τ) with CI band

. qnardl_graph , type(asymmetry) // β⁺(τ) − β⁻(τ) for each variable

. qnardl_graph , type(all) // combined 4-panel layout

. qnardl_mgraph // dynamic multipliers at median τ

. qnardl_mgraph , tau(0.75) // at a specific quantile

. qnardl_cgraph // CUSUM only

. qnardl_cgraph , cusumsq // CUSUM² only

. qnardl_cgraph , both // CUSUM + CUSUM² side-by-side

. qnardl_showall // display every saved qnardl graph as tabs

Stored results

qnardl stores the following in e():

Scalars

e(N) number of observations

e(k) number of asymmetric regressors

e(k_lin) number of linear (non-decomposed) regressors

e(ntau) number of quantiles

e(case) Bertsatos case 1..11

e(p_lag) e(q_lag) e(r_lag) selected/specified lag orders

e(level) confidence level

e(horizon_mult) multiplier horizon (if multipliers used)

e(cv_F_lo) e(cv_F_hi) embedded Bertsatos F-test 5% bounds

e(cv_t_lo) e(cv_t_hi) embedded Bertsatos t-test 5% bounds

Matrices

e(b_lr_pos) long-run β⁺(τ), ntau × k_asym

e(b_lr_neg) long-run β⁻(τ), ntau × k_asym

e(t_lr_pos) t-statistic for β⁺(τ) (or asymmetry t under twostep)

e(t_lr_neg) t-statistic for β⁻(τ)

e(phi_y) ECT speed-of-adjustment per τ, ntau × 2 (coef, SE)

e(b_sr) e(V_sr) short-run ECM coefs (twostep only)

e(b_urecm) e(V_urecm) URECM coefs (onestep only)

e(bounds) F_yx, F_x, t_y, p-values, verdict per τ (if bounds)

e(mult_pos) e(mult_neg) cumulative response paths m⁺_jh(τ), m⁻_jh(τ) (if multipliers)

Macros

e(cmd) qnardl

e(method) twostep or onestep

e(step1) long-run engine used (twostep only)

e(depvar) name of dependent variable

e(asymvars) original (pre-decomposition) asymmetric variable names

e(pos_vars) e(neg_vars) generated partial-sum variable names

Interpretation guide

Long-run β⁺(τ) and β⁻(τ) measure the cumulative impact on y of a
unit positive or negative shock to x in the long run, conditional on the τ-th
quantile of y. Sign asymmetry exists when β⁺(τ) ≠ β⁻(τ); test with lrsymmetry.

Speed-of-adjustment φ_y(τ) measures the per-period correction
toward long-run equilibrium. Negative and statistically significant ⇒
cointegration is operating at quantile τ. |1 + φ_y(τ)| < 1 implies stable
convergence.

Bounds verdict per τ: "cointegration" (F > I(1) bound),
"inconclusive" (between bounds), "no cointegration" (F < I(0) bound). Computed
against the Bertsatos et al. 2022 simulated critical values.

Dynamic multipliers m⁺(h), m⁻(h) show the cumulative response of y
over horizon h to a unit positive (negative) shock in x⁺ (x⁻). Asymptotes
converge to β⁺(τ), β⁻(τ).

CUSUM / CUSUM² tests detect parameter instability over the sample
period. Breaches outside the 5% Brown-Durbin-Evans bands indicate structural
change.

Diagnostics: BG p-value < 0.05 rejects no serial correlation; BPG
< 0.05 rejects homoskedasticity; JB < 0.05 rejects normality. RESET tests
functional-form adequacy.

Dependencies

- Stata 14.0+ (qreg with quantile() option)

- qcointlib (ssc install qcointlib) — for FM-quantile estimation via xqcoint (only required when using the default twostep estimator with step1(fmqr); the package falls back to plain qreg otherwise)

Companion commands

qnardl_graph — quantile-process plots (β, ECT, asymmetry, all)

qnardl_mgraph — dynamic multipliers per quantile

qnardl_cgraph — CUSUM and CUSUM² stability plots

qnardl_showall — re-display every saved qnardl graph as tabs

Author

Dr Merwan Roudane

merwanroudane920@gmail.com

May 2026 — v1.0.0

Please cite this package as:

Roudane, M. (2026). qnardl: Stata implementation of the Cho,
Greenwood-Nimmo, Kim & Shin (2020) Quantile Nonlinear ARDL model with bounds
testing, Wald symmetry tests, dynamic multipliers, CUSUM and diagnostics.
Stata package v1.0.0.

References

Bertsatos, G., Sakellaris, P. & Tsionas, M. G. (2022). Extensions of
the Pesaran, Shin and Smith (2001) bounds testing procedure.
Empirical Economics 62, 605–634.

Brown, R. L., Durbin, J. & Evans, J. M. (1975). Techniques for testing
the constancy of regression relationships over time. Journal of the Royal
Statistical Society, Series B 37, 149–192.

Cho, J. S., Greenwood-Nimmo, M., Kim, T.-h. & Shin, Y. (2020a). Hawks,
doves and asymmetry in US monetary policy: Evidence from a dynamic quantile
regression model. Mimeo, University of York.

Cho, J. S., Greenwood-Nimmo, M. & Shin, Y. (2019). Two-step estimation
of the nonlinear autoregressive distributed lag model. Working paper, Yonsei
University.

Cho, J. S., Greenwood-Nimmo, M. & Shin, Y. (2021). Recent developments
of the autoregressive distributed lag modelling framework. Working paper.

Cho, J. S., Kim, T.-h. & Shin, Y. (2015). Quantile cointegration in
the autoregressive distributed-lag modeling framework.
Journal of Econometrics 188, 281–300.

Pesaran, M. H., Shin, Y. & Smith, R. J. (2001). Bounds testing
approaches to the analysis of level relationships.
Journal of Applied Econometrics 16, 289–326.

Shin, Y., Yu, B. & Greenwood-Nimmo, M. J. (2014). Modelling asymmetric
cointegration and dynamic multipliers in a nonlinear ARDL framework. In:
Festschrift in Honor of Peter Schmidt, eds. Horrace & Sickles, Springer.

Xiao, Z. (2009). Quantile cointegrating regression.
Journal of Econometrics 150, 248–260.

Also see

qnardl_graph, qnardl_mgraph, qnardl_cgraph,
qnardl_showall, ardl (Kripfganz–Schneider), twostep_nardl,
qardl, xqcoint, qcointlib