*! version 1.0.0 03jun2026

Title

tnardll -- Threshold (Nonlinear) Autoregressive Distributed Lag model

Syntax

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

depvar and indepvars may contain time-series operators, but normally
you supply the levels and tnardll forms the differences and partial sums
internally. The data must be tsset as a pure time series (no panel).

Model
threshold(varname) variable whose first differences are decomposed
around the threshold(s); default is the first regressor

lags(p q) ARDL lag orders p (autoregressive) and q
(distributed lag); default lags(1 1)

regimes(#) fix the number of regimes S in {1,2,3};
0 (default) selects S by information criterion

maxreg(#) maximum S searched when regimes(0); default 3

ic(criterion) criterion for choosing S: aic, sic
(default), hqic, paic, psic, phqic

Threshold search
trim(#) trimming fraction for the threshold grid; default 0.15

grid(#) number of grid points for each threshold; default 50

Inference
qlr perform the QLR threshold-existence test with bootstrap p-value

breps(#) bootstrap replications for qlr; default 499

seed(#) random-number seed for the bootstrap

robust heteroskedasticity-robust (HC1) standard errors

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

Reporting
noconstant suppress the constant term

trend include a linear time trend

nodots suppress bootstrap progress dots

Description

tnardll estimates the Threshold ARDL (TARDL) model of Cho, Greenwood-Nimmo
and Shin (2020c, 2020d), surveyed in Cho, Greenwood-Nimmo and Shin (2021). The
TARDL model generalises the Nonlinear ARDL (NARDL) of Shin, Yu and
Greenwood-Nimmo (2014) by decomposing the first differences of one
regressor into regime-specific partial-sum processes around one or more
unknown threshold values, rather than the known value of zero used by
NARDL. This admits size (momentum) asymmetry in addition to sign
asymmetry.

For a single threshold (S=2) and the chosen threshold variable x with first
difference D.x, the partial sums are

Dx_t^(1) = Dx_t if Dx_t tau, else 0

Dx_t^(2) = Dx_t if Dx_t > tau, else 0

x_t^(s) = running sum of Dx_t^(s)

and the unrestricted conditional error-correction model is estimated:

D.y_t = c + rho*y_(t-1) + SUM_s theta^(s)*x_(t-1)^(s)
+ SUM_j phi_j*D.y_(t-j) + SUM_s SUM_j pi_j^(s)*D.x_(t-j)^(s)
+ (other regressors in levels and differences) + e_t

The long-run (cointegrating) coefficients are recovered as
beta^(s) = -theta^(s)/rho with delta-method standard errors. The threshold(s)
tau are estimated by profile (concentrated) least squares: for each
candidate threshold on a trimmed grid of the empirical distribution of
D.x, the model is estimated by OLS and the threshold minimising the
residual sum of squares is selected. With regimes(0) the number of
regimes is chosen by an information criterion over S in {1,2,3}.

Options

Model

threshold(varname) names the regressor whose first differences are
decomposed around the threshold(s). It must be one of indepvars. By default
the first regressor is used. All other regressors enter the model linearly (in
one lagged level and in current and lagged differences).

lags(p q) sets the underlying ARDL(p,q) orders. p governs the number
of lagged differences of the dependent variable (p-1 of them) and q the
number of lagged differences of the regressors (0..q-1). A single number sets
both. Default is lags(1 1).

regimes(#) fixes the number of regimes S (1, 2 or 3). S=1 is the linear
ARDL; S=2 is one threshold; S=3 is two ordered thresholds. regimes(0)
(the default) selects S by the criterion in ic().

ic(criterion) chooses the information criterion used to select S. The six
criteria are the Akaike (aic), Schwarz (sic), Hannan-Quinn
(hqic) and the Pitarakis (2006) modified versions paic, psic,
phqic which exclude the threshold parameters from the penalty term. Cho et
al. (2020d) find sic performs well without a drift in the regressor and
psic in small samples with a drift.

Threshold search

trim(#) discards the lowest and highest # proportion of the empirical
distribution of D.x when forming the threshold grid, ensuring each regime
contains enough observations. Default 0.15.

grid(#) sets the number of candidate threshold values. For two thresholds
(S=3) all ordered pairs from the grid are searched, so large values can be slow.

Inference

qlr computes the quasi-likelihood ratio statistic
QLR = T(1 - SSR_alt/SSR_null) testing the linear ARDL (S=1) null against the
S=2 TARDL alternative, with a p-value from a fixed-regressor wild (Rademacher)
bootstrap. The asymptotic null distribution is non-pivotal (the threshold is
unidentified under the null: the Davies, 1977/1987 problem), which is why a
bootstrap is used. See Inference below.

robust reports heteroskedasticity-robust (HC1) standard errors for all
short-run and long-run coefficients and the asymmetry tests.

The model and what is reported

tnardll reports, in order:

1. Long-run coefficients beta^(s) = -theta^(s)/rho for each regime
of the threshold variable and beta for each other regressor, with delta-method
standard errors, z-statistics and confidence intervals.

2. Short-run / ECM coefficients: the speed of adjustment rho (the
coefficient ec on y_(t-1)), the autoregressive terms, and the regime-specific
short-run terms.

3. Tests: long-run regime equality (H0: beta^(s) equal across
regimes), short-run regime equality (H0: summed short-run coefficients equal),
the optional QLR threshold-existence test, and the Pesaran-Shin-Smith (2001)
bounds F- and t-statistics for the null of no levels relationship. When the
ardl package (Kripfganz and Schneider) is installed, tnardll also
prints the Kripfganz-Schneider (2020) asymptotic I(0)/I(1) critical bounds at
the 10/5/1% levels (obtained from their surface-regression ardlbounds)
and a cointegration verdict at 5%. The deterministic case is mapped from the
model: 1 (no constant), 3 (unrestricted constant, the default) or
5 (unrestricted constant and trend), and k is the number of long-run
forcing terms (S regimes plus any other level regressors). Because the
threshold partial sums are non-standard regressors, treat these bounds as an
approximate reference.

4. The information-criterion table over S=1,2,3.

Inference -- important note

The original TARDL papers (Cho, Greenwood-Nimmo and Shin, 2020c,d) are
unpublished working papers. The survey (Cho, Greenwood-Nimmo and Shin, 2021)
states that the null limit distribution of the QLR statistic is a sum of two
separable functionals of two Gaussian processes (provided an intercept is
included) and is approximated by combining Hansen's (1996) weighted bootstrap
with a chi-squared distribution. The survey does not give the explicit
functionals or the exact bootstrap algorithm. tnardll therefore reports a
fixed-regressor wild bootstrap p-value for the QLR statistic. This is a
standard and valid device for threshold tests with an unidentified nuisance
parameter; you should treat the QLR p-value as bootstrap-based rather than from
a published critical-value table, and you are encouraged to check empirical size
by simulation for your design. Always estimate the intercept (do not use
noconstant with qlr): the separability of the limit functionals
relies on it.

Postestimation

The following postestimation tools are available after tnardll:

Command

predict linear prediction of D.depvar (xb) or residuals

tnardllmult cumulative dynamic multipliers, with optional plot

tnardlldiag residual diagnostics (serial correlation, ARCH,
heteroskedasticity, normality, functional form)

Syntax for predict

predict [type] newvar [if] [in] [, statistic]

statistic

xb linear prediction of D.depvar from the fitted ECM (the default)

residuals residuals, D.depvar minus the linear prediction

Predictions are produced over the estimation sample; the rows lost to
differencing and lagging are returned as missing.

Examples

Setup

. webuse air2, clear

. tsset time

Single-threshold TARDL of log air on a regressor, ARDL(2,2)

. tnardll lnair x, lags(2 2) regimes(2)

Let the SIC choose the number of regimes and run the QLR test

. tnardll y x z, lags(2 1) ic(sic) qlr breps(499) seed(123)

Threshold on the second regressor, robust SEs

. tnardll y x z, threshold(z) lags(1 1) robust

Cumulative dynamic multipliers and asymmetry plot

. tnardll y x, lags(2 2) regimes(2)

. tnardllmult, horizon(36) graph

Predict the fitted differences and residuals, then run diagnostics

. predict double dyhat, xb

. predict double ehat, residuals

. tnardlldiag, bglags(4) archlags(4) resetpow(3)

Stored results

tnardll stores the following in e():

Scalars

e(N) number of observations used

e(S) number of regimes

e(nthr) number of thresholds (S-1)

e(p), e(q) ARDL lag orders

e(rho) speed of adjustment

e(ssr), e(rmse) residual sum of squares; root MSE

e(r2), e(r2_a) R-squared; adjusted R-squared

e(lr_asym_chi2), e(lr_asym_p) long-run asymmetry test

e(sr_asym_chi2), e(sr_asym_p) short-run asymmetry test

e(qlr), e(qlr_p) QLR statistic and bootstrap p-value

e(Fpss), e(tBDM), e(pss_k) PSS bounds F, t and #regressors

e(pss_case) deterministic case (1, 3 or 5) for the bounds test

e(cons), e(trend) constant / trend indicator flags

Macros

e(cmd) tnardll

e(depvar), e(thrvar), e(othervars) variable lists

e(ic), e(vce) criterion and SE type

Matrices

e(b), e(V) full coefficient vector and covariance

e(lr_b), e(lr_V) long-run coefficients and covariance

e(thresholds) estimated threshold(s)

e(ictable) information criteria over S

e(profile) threshold SSR profile (S=2)

e(theta), e(phi), e(pimat) pieces used by tnardllmult

e(F_critval), e(t_critval) Kripfganz-Schneider (2020) I(0)/I(1) bounds (if ardl installed)

References

Cho, J.S., M.J. Greenwood-Nimmo and Y. Shin. 2021. Recent Developments of the
Autoregressive Distributed Lag Modelling Framework. Journal of Economic
Surveys (and working-paper versions).

Cho, J.S., M.J. Greenwood-Nimmo and Y. Shin. 2020c. Testing for the Threshold
Autoregressive Distributed Lag Model. Mimeo, University of York.

Cho, J.S., M.J. Greenwood-Nimmo and Y. Shin. 2020d. The Threshold Autoregressive
Distributed Lag Model. Mimeo, University of York.

Davies, R.B. 1977, 1987. Hypothesis Testing when a Nuisance Parameter is Present
only under the Alternative. Biometrika 64: 247-254; 74: 33-43.

Hansen, B.E. 1996. Inference when a Nuisance Parameter is not Identified under
the Null Hypothesis. Econometrica 64: 413-430.

Pesaran, M.H., Y. Shin and R.J. Smith. 2001. Bounds Testing Approaches to the
Analysis of Level Relationships. Journal of Applied Econometrics 16: 289-326.

Pitarakis, J.-Y. 2006. Model Selection Uncertainty and Detection of Threshold
Effects. Studies in Nonlinear Dynamics and Econometrics 10: 1-30.

Shin, Y., B. Yu and M.J. Greenwood-Nimmo. 2014. Modelling Asymmetric
Cointegration and Dynamic Multipliers in a Nonlinear ARDL Framework. In
Festschrift in Honor of Peter Schmidt, 281-314. Springer.

Author

Dr Merwan Roudane

merwanroudane920@gmail.com

github.com/merwanroudane

Also see

Postestimation: tnardllmult (cumulative dynamic multipliers) |
tnardlldiag (residual diagnostics)

Related: tsset