*! version 2.0.0 21feb2026

Title

fqardl -- Fourier Quantile Autoregressive Distributed Lag model

Syntax

fqardl
depvar indepvars
[if] [in]
,
tau(numlist)
[options]

Required
tau(numlist) quantile(s) to estimate, each in (0,1)

Model
type(string) estimation method: fqardl (default), fbqardl, or qcoint

p(#) AR lag order for depvar; 0 = auto-select (default)

q(#) DL lag order for indepvars; 0 = auto-select (default)

pmax(#) max AR lag for auto-selection; default 4

qmax(#) max DL lag for auto-selection; default 4

ecm estimate Error Correction Model form

noconstant suppress constant term

Fourier
maxk(#) maximum Fourier frequency; default 3

nofourier exclude Fourier terms (reduces to standard QARDL)

Information Criterion
ic(string) information criterion for lag selection: bic (default) or aic

maxlag(#) max lag for Fourier frequency selection; default 4

Bootstrap (type=fbqardl)
reps(#) number of bootstrap replications; default 999

Quantile Cointegration (type=qcoint)
leads(#) number of leads for dynamic regression; default 1

lags(#) number of lags for dynamic regression; default 1

Display & Graphs
graph produce publication-quality graphs and summary tables

notable suppress coefficient tables

Description

fqardl estimates the Fourier Quantile Autoregressive Distributed Lag (FQARDL)
model. It extends the standard QARDL framework by incorporating Fourier
trigonometric terms to capture smooth structural breaks without requiring
knowledge of the number, dates, or form of breaks.

The command provides a complete econometric toolkit with three estimation methods:

type(fqardl) — Standard Fourier Quantile ARDL

Estimates long-run (beta), short-run AR (phi), and short-run impact (gamma)
parameters at each quantile using iteratively reweighted least squares (IRLS).
Output is organized in ADJ/LR/SR blocks:

ADJ — Speed of adjustment: rho(tau) = sum(phi) - 1. Measures how fast
the system returns to long-run equilibrium. Must be negative for convergence.

LR — Long-run coefficients: beta(tau) = gamma(tau) / (1 - sum(phi(tau))).
The equilibrium relationship at each quantile.

SR — Short-run dynamics: lagged differences of dependent variable (phi),
contemporaneous differences of independent variables (gamma), and Fourier terms.

When ecm is specified, the model is reparameterized in Error Correction form
with explicit ECM term and theta (cumulative short-run) coefficients.

A Wald test for parameter constancy across quantiles is automatically displayed,
testing whether long-run, short-run AR, and short-run impact parameters are
equal across all specified quantiles.

type(fbqardl) — Fourier Bootstrap Quantile ARDL

Extends FQARDL with bootstrap-based cointegration testing. Two complementary
bootstrap methods are run:

1. Unconditional Bootstrap — Uses a single set of restricted residuals
under the joint null of no cointegrating relationship.

2. Conditional Bootstrap — Uses separate restricted residuals for each
test statistic (F_overall, t_dependent, F_independent), providing more
precise null distributions.

Three test statistics are computed for cointegration:

F_overall — Joint significance of all level variables (H0: no levels relationship)

t_dependent — Significance of lagged dependent variable (H0: no error correction)

F_independent — Joint significance of lagged independent variables (H0: no long-run effect of x)

Bootstrap critical values (1%, 5%, 10%) and p-values are reported for each test.
Cointegration is concluded when all three tests reject at the 5% level.

When graph is specified with type(fbqardl), bootstrap IRF confidence
intervals are also computed using a parametric percentile method, showing
95% confidence bands at horizons h=0, 1, 5, 10, 20.

type(qcoint) — Quantile Cointegration Test

Implements a residual-based cointegration test at each quantile. The procedure:

1. Estimates a dynamic cointegrating regression with leads and lags

2. Tests for a unit root in the residuals at each quantile

3. Compares the t-ratio to quantile-dependent critical values

This test is useful when cointegration may hold at some quantiles but not others.

Output

Graphs (with graph option)

The graph option produces up to 6 publication-quality graphs:

fqardl_kstar — SSR vs Fourier frequency k, with optimal k* highlighted

fqardl_beta_# — Long-run beta(tau) quantile process with 95% CI for each variable

fqardl_rho — Speed of adjustment rho(tau) across quantiles

fqardl_sr_impact — Short-run gamma(tau) coefficient process

fqardl_irf_# — Impulse Response Function: dynamic multiplier path from gamma to beta

fqardl_persistence — Persistence profile showing (1+rho)^h decay

Summary Tables (with graph option)

Three summary tables are displayed alongside graphs:

Speed of Adjustment & Half-Life — Shows rho(tau), 1+rho(tau),
half-life ln(2)/|rho|, and convergence status at each quantile.

Long-Run vs Short-Run Comparison — Compares beta(tau) and gamma(tau)
with LR/SR ratio and adjustment classification (Amplify/Dampen/Reverse).

Dynamic Multiplier at Key Horizons — IRF values at h=0, 1, 5, 10, 20
using the formula: IRF(h,tau) = beta(tau) + (gamma(tau) - beta(tau)) * (1+rho(tau))^h

Examples

Setup

. webuse lutkepohl2, clear

. tsset qtr

Example 1: Basic FQARDL with automatic lag selection

. fqardl inv inc, tau(0.10 0.25 0.50 0.75 0.90)

Estimates FQARDL at 5 quantiles. Lag orders (p,q) are selected
automatically by BIC. Fourier frequency k* is selected by minimum SSR.
Displays ADJ/LR/SR coefficient tables and Wald constancy tests.

Example 2: FQARDL with graphs and summary tables

. fqardl inv inc, tau(0.25 0.50 0.75) graph

Produces 6 graphs (k* selection, beta process, rho, gamma, IRF, persistence)
plus 3 summary tables (half-life, LR vs SR, dynamic multiplier).

Example 3: FQARDL with fixed lags

. fqardl inv inc, tau(0.25 0.50 0.75) p(2) q(2)

Uses fixed lag orders p=2 (AR) and q=2 (DL), bypassing automatic selection.

Example 4: FQARDL in ECM form

. fqardl inv inc, tau(0.25 0.50 0.75) ecm graph

Estimates in Error Correction form with explicit ECM coefficient and
cumulative short-run (theta) parameters.

Example 5: Standard QARDL (no Fourier)

. fqardl inv inc, tau(0.25 0.50 0.75) nofourier

Excludes Fourier terms, reducing to the standard QARDL model.

Example 6: FBQARDL with full bootstrap

. fqardl inv inc, tau(0.25 0.50 0.75) type(fbqardl) reps(199) graph

Runs FQARDL estimation, then performs both unconditional and conditional
bootstrap cointegration tests with 199 replications. With graph,
also computes bootstrap IRF confidence intervals and displays all graphs.

Example 7: Quantile cointegration test

. fqardl inv inc, tau(0.10 0.25 0.50 0.75 0.90) type(qcoint)

Tests for cointegration at each quantile separately using a residual-based
unit root test. Reports t-ratio and critical values at each quantile.

Example 8: Multiple independent variables

. fqardl inv inc consump, tau(0.25 0.50 0.75) graph

Estimates with two independent variables. Separate IRF graphs are
produced for each variable.

Example 9: AIC lag selection with higher max lags

. fqardl inv inc, tau(0.50) ic(aic) pmax(6) qmax(6)

Uses AIC instead of BIC for lag selection, with max lag of 6.

Stored results

fqardl stores the following in e():

Scalars

e(p) AR lag order

e(q) DL lag order

e(k) number of independent variables

e(kstar) optimal Fourier frequency

e(ntau) number of quantiles

e(N) number of observations

e(boot_Fov_pval) unconditional bootstrap F_overall p-value (fbqardl)

e(boot_t_pval) unconditional bootstrap t_dependent p-value (fbqardl)

e(boot_Find_pval) unconditional bootstrap F_independent p-value (fbqardl)

e(boot2_Fov_pval) conditional bootstrap F_overall p-value (fbqardl)

e(boot2_t_pval) conditional bootstrap t_dependent p-value (fbqardl)

e(boot2_Find_pval) conditional bootstrap F_independent p-value (fbqardl)

e(boot_reps) number of bootstrap replications

Matrices

e(beta) long-run parameters (k*ntau x 1)

e(beta_cov) covariance of beta

e(phi) short-run AR parameters (p*ntau x 1)

e(phi_cov) covariance of phi

e(gamma) short-run impact parameters (k*ntau x 1)

e(gamma_cov) covariance of gamma

e(rho_vec) speed of adjustment rho(tau) = sum(phi) - 1

e(tau) quantile vector

e(bt_raw) raw quantile regression coefficients

e(fh) kernel density estimates at quantiles

e(lags) optimal lag orders per variable

e(ssr_matrix) SSR values for Fourier frequency selection

e(irf_lo) bootstrap IRF 2.5th percentile (fbqardl + graph)

e(irf_hi) bootstrap IRF 97.5th percentile (fbqardl + graph)

e(irf_med) bootstrap IRF median (fbqardl + graph)

ECM form additionally stores:

e(phi_ecm) ECM speed-of-adjustment coefficient

e(phi_ecm_cov) covariance of ECM coefficient

e(theta) cumulative short-run coefficients

e(theta_cov) covariance of theta

Macros

e(cmd) fqardl

e(model) fqardl, fqardl-ecm, or qcoint

e(depvar) name of dependent variable

e(indepvars) names of independent variables

e(title) model title

References

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

Furno, M. (2021).
Cointegration tests at the quantiles.
International Journal of Finance and Economics, 26(1), 1087-1100.

Koenker, R. & Xiao, Z. (2004).
Unit root quantile autoregression inference.
Journal of the American Statistical Association, 99(467), 775-787.

McNown, R., Sam, C.Y., & Goh, S.K. (2018).
Bootstrapping the autoregressive distributed lag test for cointegration.
Applied Economics, 50(13), 1509-1521.

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

Zaghdoudi, T. (2025).
US-China tension, geopolitical risks and oil price uncertainty:
Evidence from Fourier-QARDL approach.
Energy Research Letters.

Author

Dr. Merwan Roudane

merwanroudane920@gmail.com

Also see

Help: [R] qreg, ardl, qardl, fbardl