*! version 1.2.0 18feb2026

Title

fbnardl -- Fourier Bootstrap Nonlinear Autoregressive Distributed Lag Model

Syntax

fbnardl
depvar
[control_vars]
[if] [in],
decompose(varlist)
[options]

Model specification
decompose(varlist) variables to decompose into +/- partial sums; required

type(string) model type: fnardl (default) or fbnardl

maxlag(#) maximum lag order for grid search; default 4

maxk(#) maximum Fourier frequency; default 3

ic(string) information criterion: aic (default) or bic

nofourier pure NARDL without Fourier terms

Bootstrap (type(fbnardl) only)
reps(#) bootstrap replications; default 999

Reporting
level(#) confidence level; default c(level)

horizon(#) multiplier/persistence horizon; default 20

nodiag suppress diagnostics (Table 6)

nodynmult suppress dynamic multipliers and graphs

noadvanced suppress advanced analyses (Tables 7-9)

notable suppress regression table (Table 2)

You must tsset your data before using fbnardl; see tsset.

depvar and control_vars may contain time-series operators; see tsvarlist.

Variables in decompose() are split into positive/negative partial sums.
All other variables in varlist enter as non-decomposed controls.

Description

fbnardl estimates a Fourier Nonlinear Autoregressive Distributed Lag
(FNARDL) model that combines three methodological advances:

1. Nonlinear ARDL (NARDL): Decomposes selected regressors into positive and
negative partial sums to capture asymmetric short-run and long-run effects
(Shin, Yu & Greenwood-Nimmo, 2014).

2. Fourier approximation: Incorporates low-frequency trigonometric terms to
capture smooth structural breaks of unknown form (Yilanci, Bozoklu & Gorus, 2020;
Enders & Lee, 2012).

3. Bootstrap cointegration testing: Optionally uses a parametric bootstrap
procedure for computing finite-sample critical values (Bertelli, Vacca & Zoia,
2022; McNown, Sam & Goh, 2018).

The command performs a two-step model selection (Yilanci et al. 2020), produces
up to 9 output tables, and generates publication-quality graphs including
a k* selection plot, dynamic multipliers, persistence profiles, and asymmetric
adjustment comparisons.

Methodology

The FNARDL Model Equation

The ARDL(p, q, r) error correction model estimated by fbnardl is:

d.y_t = c + SUM(j=1..p) phi_j * d.y_

+ SUM(j=0..q) [theta+_j * d.x+_ + theta-_j * d.x-_]

+ SUM(j=0..r) delta_j * d.z_

+ alpha * y_ + beta+ * x+_ + beta- * x-_ + gamma * z_

+ lambda1 * sin(2*pi*k*t/T) + lambda2 * cos(2*pi*k*t/T) + epsilon_t

where:

d.y_t = first difference of the dependent variable

x+_t, x-_t = positive and negative partial sums of decomposed variable(s):
x+_t = SUM(i=1..t) max(d.x_i, 0) and x-_t = SUM(i=1..t) min(d.x_i, 0)

z_t = non-decomposed control variable(s)

alpha = error correction (ECM) coefficient (speed of adjustment)

beta+, beta- = long-run level coefficients (decomposed)

gamma = long-run level coefficient (controls)

sin(.), cos(.) = Fourier terms to capture structural breaks

k* = optimal Fourier frequency (selected by minimum SSR)

Partial Sum Decomposition

Following Shin, Yu & Greenwood-Nimmo (2014), each variable in decompose()
is split into two new variables:

var_pos = SUM(i=1..t) max(d.var_i, 0) -- cumulative positive changes

var_neg = SUM(i=1..t) min(d.var_i, 0) -- cumulative negative changes

This allows positive and negative changes to have different impacts on the
dependent variable in both the short run and the long run.

Fourier Approximation

Following Enders & Lee (2012) and Yilanci et al. (2020), a pair of trigonometric
terms -- sin(2*pi*k*t/T) and cos(2*pi*k*t/T) -- are included to capture
smooth structural breaks without pre-specifying break dates. The frequency k*
controls the oscillation pattern:

Small k* (< 1): slow, gradual structural shifts

k* = 1: one full oscillation (single structural break)

k* > 1: multiple breaks or higher-frequency regime changes

Use nofourier to exclude Fourier terms and estimate a pure NARDL.

Two-Step Model Selection (Yilanci et al. 2020)

Step 1 -- Select k* by minimum SSR:
For each candidate k* in {0.1, 0.2, ..., maxk}, a maximal ARDL model
(p=maxlag, q=maxlag, r=maxlag) is estimated and the SSR is recorded.
The k* with the lowest SSR is selected. A graph (kstar_selection.png)
visualizes the SSR across all candidate frequencies.

Step 2 -- Select lags (p,q,r) by AIC/BIC with fixed k*:
With k* fixed from Step 1, an exhaustive grid search over all lag combinations:

p = {1, ..., maxlag} -- lags of d.y

q_i = {0, ..., maxlag} -- lags of each decomposed variable's partial sums

r_j = {0, ..., maxlag} -- lags of each control variable

The combination with the lowest AIC (default) or BIC is selected.
Each variable may have a different optimal lag order.

Long-Run Multipliers

For decomposed variables:
LR+ = -beta+ / alpha and LR- = -beta- / alpha

For non-decomposed controls:
LR = -gamma / alpha

Standard errors are computed via the delta method (nlcom).

Dynamic Multipliers

Dynamic multipliers trace the time path of a unit shock at each horizon h:

m_h = theta_h + SUM(j=1..min(h,p)) phi_j * m_

Cumulative multipliers are the running sum. For decomposed variables, separate
positive and negative paths are shown; for controls, a single path.

Cointegration Testing

type(fnardl) -- PSS bounds test (Pesaran, Shin & Smith, 2001) with
Kripfganz & Schneider (2020) critical values. Three statistics:
F_overall, t_dependent, and F_independent.

type(fbnardl) -- Parametric bootstrap (Bertelli et al. 2022).
Simulates the null distribution of no cointegration.
Reports critical values at 1%, 2.5%, 5%, 10% plus bootstrap p-values.

Diagnostic Tests

Normality: Jarque-Bera, Shapiro-Wilk, Shapiro-Francia

Serial correlation: Breusch-Godfrey LM (1-4 lags), Durbin-Watson

Heteroskedasticity: Breusch-Pagan, White, ARCH LM

Functional form: Ramsey RESET

Stability: CUSUM and CUSUM-squared at 5%

Half-Life and Persistence Profile

ECM half-life = -ln(2) / ln(1 + alpha). The persistence profile
(Pesaran & Shin, 1996) traces the proportion of disequilibrium remaining
at each horizon after a system-wide shock.

Asymmetric Adjustment Speed

For each decomposed variable, compares how positive vs. negative shocks
converge to their long-run equilibria. Metrics: impact multiplier, effective
long-run, half-life, 90% adjustment time, and overshoot detection.

Options

Model specification

decompose(varlist) specifies variables to decompose into positive/negative
partial sums. The positive sum captures cumulative positive changes; the negative
sum captures cumulative negative changes. Multiple variables allowed; each gets
its own lag order.

type(string) sets the cointegration test type.
type(fnardl) = PSS bounds test with Kripfganz & Schneider critical values (default).
type(fbnardl) = parametric bootstrap critical values (Bertelli et al. 2022).

maxlag(#) maximum lag order for the grid search over p, q, and r.
Default is 4. Higher values increase flexibility but also computation time.

maxk(#) maximum Fourier frequency. Default is 3. The search grid is
k* = {0.1, 0.2, ..., maxk}. Small k* captures slow shifts; large k* captures
frequent changes.

ic(string) information criterion for lag selection (Step 2).
ic(aic) = Akaike (default, tends to larger models).
ic(bic) = Bayesian (favors parsimony).

nofourier estimates pure NARDL without Fourier terms. Compare with
the Fourier specification to assess the importance of structural breaks.

Bootstrap

reps(#) number of bootstrap replications for type(fbnardl).
Default 999. Use 99 for exploratory; 999-1999 for final; 4999+ for publication.

Reporting

level(#) confidence level. Default is c(level).

horizon(#) dynamic multiplier and persistence profile horizon.
Default 20. Use 30-50 if the ECM coefficient is small (slow adjustment).

nodiag suppresses the diagnostic test table (Table 6).

nodynmult suppresses dynamic multiplier computation and all graphs.

noadvanced suppresses Tables 7-9 (half-life, persistence, Fourier test,
asymmetric adjustment).

notable suppresses the full regression coefficient table (Table 2).

Output tables

fbnardl produces up to 9 tables:

Table 1 - Model Selection

Reports the selected model specification and fit statistics:

Lag orders: p (dependent variable), q_1, ..., q_d (each decomposed
variable), r_1, ..., r_c (each control variable).
Each variable may have a different optimal lag.

Fourier frequency: k* selected in Step 1 (minimum SSR).
Shows 0 when nofourier is specified.

Fit statistics: Information criterion value (AIC or BIC), AIC, BIC,
log-likelihood, number of observations, R-squared, adjusted R-squared,
and the overall F-statistic with its p-value.

Grid search summary: Number of lag combinations evaluated and the
number of Fourier frequencies tested.

Table 2 - Estimation Results

Full OLS coefficient table with standard errors, t-statistics, p-values,
and significance stars. Organized into three panels:

Panel A -- Short-Run Dynamics:
Lagged differences of the dependent variable (D.y_, ..., D.y_);
lagged differences of positive/negative partial sums for each decomposed
variable (D.x+_, D.x-_ for j = 0, ..., q_i);
lagged differences of control variables (D.z_ for j = 0, ..., r_j).

Panel B -- Long-Run (ECM Level) Coefficients:
Error correction term (alpha = coefficient on L.depvar, expected negative
for stable equilibrium); level terms for decomposed variables
(L.var_pos = beta+, L.var_neg = beta-); level terms for controls
(L.var = gamma).

Panel C -- Fourier Terms and Constant:
Coefficients on sin(2*pi*k*t/T) and cos(2*pi*k*t/T), plus the regression
constant. These terms capture smooth structural breaks.

Table 3 - Short-Run & Long-Run Multipliers

For each decomposed variable:

SR+ (short-run positive multiplier): sum of contemporaneous and lagged
D-coefficients for the positive partial sum.

SR- (short-run negative multiplier): sum of contemporaneous and lagged
D-coefficients for the negative partial sum.

LR+ (long-run positive multiplier): -beta+ / alpha, computed via
the delta method (nlcom) with standard errors, t-statistics,
p-values, and confidence intervals.

LR- (long-run negative multiplier): -beta- / alpha, same method.

Asymmetry ratios: |SR+/SR-| and |LR+/LR-|. Values close to 1 indicate
symmetry. Values far from 1 indicate meaningful asymmetry between
positive and negative shocks.

For each non-decomposed control variable:

SR (short-run multiplier): sum of contemporaneous and lagged D-coefficients,
with Std.Err., t-stat, and p-value.

LR (long-run multiplier): -gamma / alpha, with delta-method inference.

Table 4 - Wald Tests for Asymmetry

For each decomposed variable, two formal tests of asymmetry:

Short-run asymmetry: F-test of H0: theta+_0 = theta-_0.

Tests whether the contemporaneous (lag-0) impacts of positive and negative
shocks are equal. A significant result (p < 0.05) means the immediate
response to a positive shock differs from a negative shock.

Long-run asymmetry: Chi-squared test of H0: LR+ = LR- (via
testnl).

Tests whether the total equilibrium effects differ. This is the key test
for the NARDL framework. A significant result confirms that positive and
negative changes have permanently different long-run effects.

Table 5 - Cointegration Test

Three test statistics following McNown, Sam & Goh (2018):

F_overall: Joint significance of all lagged level variables
(alpha = beta+ = beta- = gamma = 0). The main Pesaran et al. (2001)
bounds test statistic.

t_dependent: t-statistic on the lagged dependent variable (L.depvar).
Tests H0: alpha = 0. Must be significant and negative for valid ECM.

F_independent: Joint significance of lagged independent level
variables only (beta+ = beta- = gamma = 0). Excludes alpha.

type(fnardl): Reports PSS bounds test critical values from
Kripfganz & Schneider (2020) response surfaces at 10%, 5%, and 1%
significance levels. Decision column shows "Reject H0" (cointegration),
"Fail to reject" (no cointegration), or "Inconclusive" (between bounds).

type(fbnardl): Reports bootstrap critical values at 1%, 2.5%, 5%, 10%
levels from reps() replications. Also shows the bootstrap p-value
(proportion of bootstrap statistics exceeding the sample statistic).
Bootstrap inference is preferred for small samples.

Table 6 - Diagnostic Tests

Full battery of specification tests:

Normality: Jarque-Bera chi-squared test (skewness + kurtosis),
Shapiro-Wilk W test, and Shapiro-Francia W' test. All three test
H0: residuals are normally distributed.

Serial correlation: Breusch-Godfrey LM test at lags 1, 2, 3, and 4.
Also reports the Durbin-Watson d statistic. H0: no serial correlation.
Significant results indicate model misspecification or omitted dynamics.

Heteroskedasticity: Breusch-Pagan chi-squared test for linear
heteroskedasticity; White's general test (includes cross-products);
ARCH LM test for conditional heteroskedasticity. H0: homoskedastic
errors.

Functional form: Ramsey RESET test using powers of fitted values.
H0: no omitted nonlinearity. Significant results suggest the linear
specification is inadequate.

Stability: CUSUM and CUSUM-squared tests at 5% significance.
These are recursive residual-based tests for parameter stability.
"Stable" indicates parameters do not change over the sample period.

Table 7 - Half-Life & Persistence Analysis

Reports the following based on the ECM coefficient alpha:

ECM half-life: -ln(2) / ln(1 + alpha). The number of periods for
half the disequilibrium to be corrected. Example: if alpha = -0.3
(quarterly data), half-life = 1.94 quarters.

Mean adjustment lag: -1 / alpha. The average time to adjust.

99% adjustment time: -ln(100) / ln(1 + alpha). Periods until
99% of the disequilibrium is corrected.

Persistence profile table: Pesaran & Shin (1996) profile showing
the fraction of disequilibrium remaining at horizons h = 0, 1, ..., H.
Decays from 1.0 (full shock) toward 0.0 (full adjustment).

Persistence profile half-life: The horizon where the profile
first crosses 0.5.

Table 8 - Fourier Terms Joint Significance

F-test of H0: lambda_1 = lambda_2 = 0 (Fourier terms are jointly
insignificant, i.e., no structural break). Reports the F-statistic,
numerator and denominator degrees of freedom, and p-value.

If significant (p < 0.05): the Fourier terms capture meaningful structural
breaks, and the FNARDL specification is preferred.

If insignificant: consider using nofourier to estimate a standard
NARDL, which is more parsimonious.

Table 9 - Asymmetric Adjustment Speed

For each decomposed variable, compares adjustment dynamics of positive vs.
negative shocks:

Analytical LR multiplier: From the delta method (Table 3).

Effective LR: Where the cumulative dynamic multiplier converges.
May differ from analytical LR if the dynamic path overshoots.

Impact multiplier (h=0): Contemporaneous effect of the shock.

Impact as % of effective LR: Shows how much of the long-run
effect is realized immediately. Values > 100% indicate overshoot.

Half-life: Periods to reach 50% of the effective long-run.
Reported as "Overshoot" when the impact exceeds the long-run.

90% adjustment time: Periods to reach 90% of the effective long-run.

Overshoot flag: "Yes" if the impact multiplier exceeds the
effective long-run, indicating initial over-reaction followed by
partial reversal.

Graphs

All graphs are saved as PNG files (1200px wide) in the current working
directory. Graphs are also displayed in the Stata graph window using
named windows so they can be recalled.

Fourier frequency selection

kstar_selection.png: Plots the sum of squared residuals (SSR) from
Step 1 against each candidate Fourier frequency k*. The SSR values are
shown as a connected navy line with circle markers. The optimal k*
(minimum SSR) is highlighted with a large red (cranberry) diamond marker
and a red dashed vertical reference line. The graph title indicates
this is the Yilanci et al. (2020) selection procedure. This graph is
only produced when multiple k* values are tested (not with nofourier).

Dynamic multipliers

dynmult_var.png: Dynamic multiplier paths showing the period-by-period
effect of a unit shock at each horizon h = 0, 1, ..., H. For decomposed
variables, two lines are plotted: positive multiplier path (blue) and
negative multiplier path (red). For non-decomposed controls, a single
navy line shows the total dynamic effect. Includes a zero reference line.

cummult_var.png: Cumulative multiplier paths (running sum of
dynamic multipliers). For decomposed variables, shows positive and
negative cumulative paths with their respective LR+ and LR- horizontal
target lines, allowing visual assessment of convergence speed. For
controls, a single cumulative path with the LR target line.

Persistence profile

persistence_profile.png: Pesaran & Shin (1996) persistence profile
plotting the proportion of disequilibrium remaining at each horizon h.
Starts at 1.0 and decays toward 0.0. A horizontal dashed reference line
at 0.5 indicates the half-life horizon. The graph shows how quickly the
system returns to long-run equilibrium after a system-wide shock.

Asymmetric adjustment

asymmetric_adjustment_var.png: Plots positive and negative shock
adjustment paths as a percentage of their respective effective long-run
equilibria. Includes half-life markers (vertical dashed lines) for each
component and a 100% horizontal reference line (full adjustment).
When both paths are visible, the graph reveals which shock type
(positive or negative) adjusts faster to its long-run target.

halflife_comparison_var.png: Side-by-side bar chart comparing
half-life periods and 90% adjustment times for positive vs. negative
shocks. Provides an at-a-glance visual comparison of adjustment speeds.
This graph is skipped when both positive and negative components
overshoot their long-run targets.

Stored results

fbnardl stores the following in e():

Scalars

e(N) number of observations

e(best_p) selected lag p

e(best_q) selected lag q (max across decomposed)

e(best_kstar) selected Fourier frequency k*

e(ic_val) IC value at optimal model

e(aic) AIC

e(bic) BIC

e(ll) log-likelihood

e(r2) R-squared

e(r2_a) adjusted R-squared

e(F) overall F-statistic

e(df_m) model degrees of freedom

e(df_r) residual degrees of freedom

e(rmse) root mean squared error

e(Fov) PSS F_overall

e(t_dep) t-statistic on L.depvar

e(Find) F-statistic on lagged independents

e(alpha) ECM coefficient

e(halflife) ECM half-life (periods)

e(lr_pos_var) positive LR multiplier

e(lr_neg_var) negative LR multiplier

e(lr_var) LR multiplier (control)

Scalars (bootstrap, type(fbnardl) only)

e(bs_reps) number of bootstrap replications

e(bs_Fov_cv01) bootstrap 1% critical value for F_overall

e(bs_Fov_cv025) bootstrap 2.5% critical value for F_overall

e(bs_Fov_cv05) bootstrap 5% critical value for F_overall

e(bs_Fov_cv10) bootstrap 10% critical value for F_overall

e(bs_Fov_pval) bootstrap p-value for F_overall

e(bs_t_cv01) bootstrap 1% critical value for t_dependent

e(bs_t_cv025) bootstrap 2.5% critical value for t_dependent

e(bs_t_cv05) bootstrap 5% critical value for t_dependent

e(bs_t_cv10) bootstrap 10% critical value for t_dependent

e(bs_t_pval) bootstrap p-value for t_dependent

e(bs_Find_cv01) bootstrap 1% critical value for F_independent

e(bs_Find_cv025) bootstrap 2.5% critical value for F_independent

e(bs_Find_cv05) bootstrap 5% critical value for F_independent

e(bs_Find_cv10) bootstrap 10% critical value for F_independent

e(bs_Find_pval) bootstrap p-value for F_independent

Macros

e(cmd) fbnardl

e(cmdline) full command as typed

e(type) fnardl or fbnardl

e(depvar) dependent variable name

e(decompose) decomposed variable name(s)

e(controls) control variable name(s), if any

e(ic) information criterion used (aic or bic)

e(model_spec) full specification string, e.g., FNARDL(2,0,0) k*=0.1

Matrices

e(b) coefficient vector from OLS regression

e(V) variance-covariance matrix of coefficients

Functions

e(sample) marks the estimation sample

Examples

Data Setup

. clear

. set obs 300

. set seed 12345

. gen t = _n

. tsset t

. gen y = 0

. gen x1 = 0

. gen x2 = 0

. gen z1 = 0

. gen z2 = 0

. replace x1 = L.x1 + rnormal() if _n > 1

. replace x2 = L.x2 + rnormal() if _n > 1

. replace z1 = L.z1 + rnormal() if _n > 1

. replace z2 = L.z2 + rnormal() if _n > 1

. replace y = 0.3*L.y + 0.5*x1 - 0.2*x2 + 0.1*z1 - 0.3*z2 + rnormal()

Case 1: One decomposed variable + one control (basic)

Decompose x1 into positive/negative shocks; z1 enters as a control:

. fbnardl y z1, decompose(x1) maxlag(4) ic(aic)

This is the most common use case. Produces all 9 tables, k* selection graph,
dynamic multiplier graphs, persistence profile, and asymmetric adjustment graphs.
x1 gets positive/negative multipliers and asymmetry tests. z1 gets a single-path
multiplier.

Case 2: One decomposed variable, no controls

Bivariate model with only the decomposed variable:

. fbnardl y, decompose(x1) maxlag(4) ic(aic)

Simpler model. No control variable tables or graphs. Reduces to the original
Shin et al. (2014) NARDL with Fourier terms added.

Case 3: Multiple decomposed variables, no controls

Both x1 and x2 are decomposed:

. fbnardl y, decompose(x1 x2) maxlag(4) ic(aic)

Each decomposed variable gets its own: partial sums, multiplier table, asymmetry
tests, dynamic multiplier graphs, and asymmetric adjustment analysis. Each may
have a different optimal lag q.

Case 4: Multiple decomposed + multiple controls

Full model with x1, x2 decomposed and z1, z2 as controls:

. fbnardl y z1 z2, decompose(x1 x2) maxlag(4) ic(aic)

The most general case. Each variable has its own optimal lag. Controls get
single-path dynamic multipliers and their own LR estimates.

Case 5: Pure NARDL (no Fourier terms)

. fbnardl y z1, decompose(x1) nofourier maxlag(4) ic(aic)

Standard NARDL without structural break approximation. No k* selection graph.
No Table 8 (Fourier significance). Compare AIC/BIC with the Fourier version
to decide which specification is preferred.

Case 6: Bootstrap cointegration testing

. fbnardl y z1, decompose(x1) type(fbnardl) reps(999) maxlag(4)

Uses bootstrapped critical values instead of asymptotic PSS bounds.
Table 5 now shows bootstrap CVs at 1%, 2.5%, 5%, 10% plus bootstrap p-values.
Preferred for small samples or when asymptotic bounds may be unreliable.

Case 7: BIC model selection with longer horizon

. fbnardl y z1, decompose(x1) ic(bic) maxlag(4) horizon(40)

BIC penalizes complexity more than AIC, selecting more parsimonious models.
horizon(40) extends the dynamic multiplier and persistence profile plots to
40 periods -- useful when adjustment is slow.

Case 8: Quick estimation (suppress extras)

. fbnardl y z1, decompose(x1) nodiag nodynmult noadvanced

Produces only Tables 1-5 and no graphs. Fastest estimation for exploratory work.

Case 9: Real-world application

GDP growth model testing asymmetric inflation effects with unemployment control:

. use gdp_data, clear

. tsset quarter

. fbnardl gdp_growth unemployment, decompose(inflation) maxlag(4) ic(aic)

Tests whether positive inflation shocks (rising prices) have a different
effect on GDP growth than negative shocks (falling prices), while controlling
for unemployment and accounting for structural breaks via Fourier terms.

Case 10: Accessing stored results

. ereturn list

. display "Model: " e(model_spec)

. display "ECM coefficient: " e(alpha)

. display "Half-life: " e(halflife) " periods"

. display "Optimal k*: " e(best_kstar)

. display "F_overall: " e(Fov)

. display "R-squared: " e(r2)

Interpretation guide

Table 3 -- Reading multipliers

Short-run multipliers (SR): Immediate effect of a unit change. For decomposed
variables, SR+ and SR- measure the impact of positive and negative shocks separately.

Long-run multipliers (LR): Total equilibrium effect of a permanent unit change.
If |LR+/LR-| > 1, positive shocks have a proportionally larger long-run effect.

Asymmetry ratios: |SR+/SR-| and |LR+/LR-| near 1 indicate near symmetry.
Values far from 1 suggest meaningful asymmetry.

Table 4 -- Reading Wald tests

A significant short-run asymmetry test (p < 0.05) means the contemporaneous
impact of a positive shock differs from a negative shock.

A significant long-run asymmetry test means the total equilibrium effects
differ. This is the key test for the NARDL framework.

Table 5 -- Cointegration decision

Cointegration is confirmed when all three hold:
(1) F_overall exceeds the upper I(1) bound (or bootstrap p < 0.05),
(2) t_dependent is significant, and
(3) F_independent is significant.
See McNown, Sam & Goh (2018) for the augmented ARDL bounds test.

Table 7 -- Half-life

The ECM coefficient alpha must be negative and significant for valid error correction.
A half-life of 2 (quarterly data) means half the disequilibrium is corrected in
2 quarters.

Table 8 -- Fourier significance

If the joint F-test on Fourier terms is significant (p < 0.05), the Fourier
specification is preferred over pure NARDL. If insignificant, consider
nofourier.

Overshoot

When the impact multiplier (h=0) exceeds the effective long-run multiplier,
the system "overshoots" -- it over-reacts initially then partially reverses.
In this case, half-life is reported as "Overshoot" rather than a period count.

References

Bertelli, S., Vacca, G. & Zoia, M. (2022). Bootstrap cointegration tests in
ARDL models. Economic Modelling, 116, 105987.

Enders, W. & Lee, J. (2012). The flexible Fourier form and Dickey-Fuller type
unit root tests. Economics Letters, 117(1), 196-199.

Kripfganz, S. & Schneider, D.C. (2020). Response surface regressions for
critical value bounds and approximate p-values in equilibrium correction models.
Oxford Bulletin of Economics and Statistics, 82(6), 1456-1481.

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. (1996). Cointegration and speed of convergence to
equilibrium. Journal of Econometrics, 71(1-2), 117-143.

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.

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

Yilanci, V., Bozoklu, S. & Gorus, M.S. (2020). Are BRICS countries pollution
havens? Evidence from a bootstrap ARDL bounds testing approach with a Fourier
function. Sustainable Cities and Society, 55, 102035.

Author

Dr. Merwan Roudane

Independent Researcher

Email: merwanroudane920@gmail.com

Please cite as:

Roudane, M. (2026). fbnardl: Fourier Bootstrap Nonlinear ARDL for Stata.