Skip to content

ardlverse

2.1.0Package record

Comprehensive ARDL: Panel, Bootstrap and Fourier Methods

0packages depend
4.5Kdownloads / year
73.1%test coverage
13/13flavors OK

Overview

About

A unified framework for Autoregressive Distributed Lag (ARDL) modeling and cointegration analysis. Implements Panel ARDL with Pooled Mean Group (PMG), Mean Group (MG), and Dynamic Fixed Effects (DFE) estimators following Pesaran, Shin and Smith (1999) doi:10.1080/01621459.1999.10474156. Provides the bounds test of Pesaran, Shin and Smith (2001) doi:10.1002/jae.616 with the critical values of Kripfganz and Schneider (2020) doi:10.1111/obes.12377 and with recursive bootstrap critical values following Bertelli, Vacca and Zoia (2022) doi:10.1016/j.econmod.2022.105987 and McNown, Sam and Goh (2018) doi:10.1080/00036846.2017.1366643. Includes Quantile Nonlinear ARDL (QNARDL) combining distributional and asymmetric effects based on Shin, Yu and Greenwood-Nimmo (2014) doi:10.1007/978-1-4899-8008-3_9, Fourier ARDL for modeling smooth structural breaks following Enders and Lee (2012) doi:10.1016/j.econlet.2012.04.081, and Fourier (bootstrap) nonlinear ARDL. Features include Augmented ARDL (AARDL) with deferred t and F tests, Multiple-Threshold NARDL for complex asymmetries, Rolling/Recursive ARDL for time-varying relationships, and Panel NARDL for nonlinear panel cointegration. All methods include comprehensive diagnostics, publication-ready outputs, and visualization tools.

Changes in 2.1.0

Monte Carlo rates below: y and x independent random walks, n = 100, 200 samples, B = 199, nominal level 5%; Monte Carlo standard errors in parentheses.

Breaking changes

  • boot_ardl(): the bootstrap is now recursive and its default follows Bertelli, Vacca and Zoia (2022, Section 3): one restricted model per statistic (Fov, t, Find), y* and x* generated observation by observation (x* from the marginal model of the differenced regressors with p - 1 lags, BVZ eq. 19), residuals recentred after each draw and a random block of initial values. nulls = "joint" uses the null of the Fov test for all statistics (McNown, Sam and Goh, 2018, Steps 1-8) applied to the conditional ECM, a package choice (MSG write the y equation without the contemporaneous differences). The 2.0.3 bootstrap regenerated only the dependent variable and kept the lagged levels and differences of the data fixed, with one null for F and t; it rejected in 29.0% (3.2%) (F) and 53.0% (3.5%) (t) of the samples. The new bootstrap rejects in 4.5% (1.5%) (Fov), 7.5% (1.9%) (t) and 10.0% (2.1%) (Find); with nulls = "joint" 7.0% (1.8%), 8.0% (1.9%) and 8.5% (2.0%). All bootstrap p-values and critical values change.
  • boot_ardl(): the conclusion was "cointegration" when F OR t was significant. Cointegration is now concluded only when Fov, t and Find all reject; Fov rejecting without t is reported as the degenerate case of the first type, Fov and t rejecting without Find as the degenerate case of the second type. The new field decision holds the code ("COINTEGRATION", "NO_COINTEGRATION", "DEGENERATE_1", "DEGENERATE_2", "UNDETERMINED"). The rate of a "cointegration" conclusion under the null fell from 57.5% (3.5%) to 3.0% (1.2%).
  • boot_ardl(): new statistic Find_stat (F test on the lagged regressors) with boot_Find, cv_Find, p_value_Find. Critical values are order statistics of the bootstrap distribution (BVZ eqs. 24-25) at 10%, 5%, 2.5% and 1% (names "90%", "95%", "97.5%", "99%" for the F tests, "10%", "5%", "2.5%", "1%" for t) instead of quantile(). parallel and ncores are deprecated and ignored.
  • boot_ardl(p = 0) now gives an error. In 2.0.3 it ran and gave the same model and F statistic as p = 1 (an ARDL(0, q) has no lagged level of y, so the bounds test is not defined); p must be at least 1.
  • aardl(), types "bootstrap", "bnardl", "fbootstrap" and "fbnardl": same recursive bootstrap (new argument nulls); the partial sums are rebuilt from x* with the same decomposition as the data and the Fourier terms at fourier_k are held fixed. The 2.0.3 bootstrap kept the design fixed, used one null and did not recentre the residuals; its rejection rates were 32.0% (3.3%) to 86.0% (2.5%) (F), 50.5% (3.5%) to 97.5% (1.1%) (t) and 18.0% (2.7%) to 49.5% (3.5%) (F_ind). New rates: F 4.0% (1.4%) to 9.0% (2.0%), t 6.5% (1.7%) to 12.0% (2.3%), F_ind 6.5% (1.7%) to 16.0% (2.6%), and 2.0% (1.0%) to 6.0% (1.7%) for a "cointegration" decision (14.5% (2.5%) to 47.0% (3.5%) in 2.0.3). F_ind over-rejects with Fourier terms and partial sums (type "fbnardl": 16.0% (2.6%); an independent review Monte Carlo gave 11.3% (1.8%)). The decision codes are those of boot_ardl() (the former "INCONCLUSIVE" for F and t significant without F_ind is now "DEGENERATE_2"), and the bootstrap distributions keep failed replications as NA.
  • aardl(), types "fourier" and "fnardl": the bounds decision with Fourier terms is removed (no valid bounds exist for the bounds test with Fourier terms; under the null its rejection rate was 22.5% (3.0%) and 28.5% (3.2%)). The decision is now "NOT_AVAILABLE", and the bounds shown are labelled as bounds for the model without Fourier terms, not valid with Fourier terms, consistent with fourier_bounds_test(); the short-run count of these bounds no longer includes the Fourier terms.
  • mtnardl(): the dynamic multipliers were wrong (the level coefficient was used as a short-run coefficient and the lagged dynamics were ignored; for example regime 2 at horizon 0 gave 0.090 instead of 0.303). They are now computed by the full recursion of the estimated ECM, equal to the simulated response of the level of y to a permanent unit increase in each partial sum, for horizons 0 to horizon (new argument, default 30; multipliers$cumulative now has horizon + 1 rows and multipliers$horizons starts at 0).
  • mtnardl(): coefficient names changed. The coefficients were named after the design matrix (designy_lag, designd.<y>.l1, and the differenced partial sums had no names); they are now y_lag, the regime names, dy_l1, ... and d_<regime>_l<i> for the differenced partial sums, with the same names in vcov().
  • mtnardl(): the bounds used k = number of original regressors. The default is now k = number of level regressors (partial sums plus linear regressors), with bounds_k = "original" for the former choice; this is a package choice pending verification against Pal and Mitra (2016) and Shin, Yu and Greenwood-Nimmo (2014). The asymptotic decision now requires both the F and the t statistic beyond their I(1) bounds (it used F only).
  • mtnardl(bootstrap = TRUE): the recursive bootstrap replaces the fixed-design bootstrap (rejection rates 46.0% (3.5%) for F and 73.0% (3.1%) for t in 2.0.3; now 3.5% (1.3%), 7.0% (1.8%) and 9.5% (2.1%) for Fov, t and Find), the Find statistic is added (Find_stat) and the decision requires Fov, t and Find.
Show all changes in 2.1.0Hide the rest of the changes in 2.1.0
  • mtnardl(auto_select = TRUE, n_thresholds = 1) always returned 0 because the internal call failed silently; it now returns the threshold that minimises the AIC over 0 and the deciles of the changes.
  • mtnardl(): asymmetry_tests[[v]] gains an element joint (Wald test of equal level coefficients across all regimes, chi-squared with R - 1 degrees of freedom) and every test a field df.
  • boot_ardl(), aardl() and mtnardl() used all.vars() on the formula, which silently turned log(y) ~ log(x) into y ~ x; transformed terms and interactions now give an informative error. Missing values give an error instead of being dropped (dropping rows closed gaps in the series).
  • boot_ardl(), aardl() and mtnardl() called set.seed() on the session's generator; the seed is now used locally and the caller's random number state is restored.

New features

  • New exported function fbnardl(): Fourier (bootstrap) nonlinear ARDL with positive and negative partial sums, selection of the Fourier frequency (integer frequencies chosen by minimum SSR as in Enders and Lee (2012, Oxford Bulletin of Economics and Statistics) by default, or a fractional grid) and of the lags by AIC or BIC on a common sample, Kripfganz and Schneider (2020) bounds without Fourier terms, recursive bootstrap with the frequency and lags selected again on every bootstrap sample (package choice; BVZ step 5(c) re-estimates the unrestricted model but does not discuss re-selection; or fixed with kstar and lags), delta-method long-run coefficients and symmetry test, a short-run symmetry test on the sum over lags, cumulative dynamic multipliers by full recursion with parametric bands, and diagnostics. With bootstrap = "bvz" the default x model is the marginal model of BVZ eqs. 19-20 (xdgp = "vecm"); xdgp = "rw" regresses the differences on the intercept, Fourier terms and exog only (a package choice). bootstrap = "mcnown" uses the Fov null for all statistics applied to the conditional ECM (package choice). The R code is a port written for this package, following the Stata module fbnardl; it corrects the long-run Wald gradient (13.36 instead of 631.90 in the reference example), the fixed-design bootstrap, the hard-coded asymptotic case III bounds, the use of bounds with Fourier terms, the lag selection on different samples, the multipliers without lagged short-run terms (0.928 instead of 0.986 at horizon 1 in the reference example), and the storage of failed replications as 0 found in the stand-alone version 1.0.2. Rejection rates with the frequency and lags selected again in each bootstrap sample (package choice; BVZ step 5(c) re-estimates the unrestricted model but does not discuss re-selection): 7.0% (1.8%) (Fov), 11.5% (2.3%) (t), 11.5% (2.3%) (Find), 3.5% (1.3%) for a "cointegration" decision (stand-alone 1.0.2: 98.5% (0.9%), 99.0% (0.7%), 67.5% (3.3%)).
  • mtnardl(): long-run coefficients with delta-method standard errors computed with the full covariance matrix (long_run_table), delta-method differences of the long-run coefficients between regimes (lr_differences), the Find statistic, decompose (a subset of regressors to decompose; the others enter linearly) and threshold_type = "quantile" (thresholds given as probabilities and converted to quantiles of the changes of each variable), which give a migration path from fqardl::mtnardl().
  • New internal file R/ardl_boot_engine.R (engine version 1.1.0): the recursive bootstrap engine shared by all bootstrap tests, with a reproduction check (the recursion with the original residuals reproduces the data), a design check (the bootstrap model equals the estimated model), failed replications stored as NA with a warning and counts, order-statistic critical values and the combined decision. With a random block of initial values the partial sums continue the data's levels in the block, so the generating model is the estimated restricted model. The x equation has p lags of the differences when the y equation has p lagged differences of y (BVZ eq. 19). The argument j0 = 1 gives the unconditional y equation of MSG eq. 12 (no contemporaneous differences). Recentring once (MSG eq. 13) subtracts the residual mean: eq. 13 divides the sum of the residuals by n - q - 1, the number of residuals of their ARDL(1,1) model, and applies no rescaling factor.

Other changes

  • DESCRIPTION: "bootstrap-based bounds testing per Pesaran, Shin and Smith (2001)" replaced by a description of the bounds test with Kripfganz and Schneider (2020) critical values and recursive bootstrap critical values (Bertelli, Vacca and Zoia, 2022; McNown, Sam and Goh, 2018).
  • boot_ardl() documentation: it no longer claims to follow McNown, Sam and Goh (2018) for a scheme that differed from it, documents that F_overall equals F_stat, and documents the decision rule. aardl() documentation no longer attributes its bootstrap to McNown, Sam and Goh (2018) and Sam, McNown and Goh (2019).
  • The start-up message showed version 1.0.0; it now shows the installed version.
  • Examples run with small numbers of bootstrap replications.
  • Tests: statistics against independent lm()/anova() computations, bootstrap draws against an independent recursion (BVZ with partial sums and a random block; MSG joint null), and size Monte Carlo tests (skipped on CRAN) for boot_ardl(), aardl(), mtnardl() and fbnardl().

Pending verification

The following papers were not available for this release; the choices below are documented as package choices:

  • Pal and Mitra (2016) and Shin, Yu and Greenwood-Nimmo (2014): k in the bounds of mtnardl(), regime formation, multiplier definition and sign convention for negative partial sums, the short-run symmetry test on the sum over lags in fbnardl().
  • Yilanci, Bozoklu and Gorus (2020) and Omay (2015): the fractional frequency grid of fbnardl() and its validity; the default is the integer grid.
  • Sam, McNown and Goh (2019): bootstrap details of the augmented ARDL test in aardl().

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 2.9 min · r-oldrel-windows-x86_64
Status changes
  • OK13 OK2026-08-05
  • NOTE12 OK, 1 NOTE2026-08-01
  • OK7 OK2026-03-12
Advisories

none known

Documentation

In release 2.1.0
READMEYes · 727 wordsVignettesNoNEWSYes · 100% structured · mentions 2.1.0Citation fileNoWebsitenot declared in DESCRIPTION
Help pages
79 (51 internal)includes a package overview page
Examples that run
43%9 run in a plain check · 10 only when donttest examples are enabled (R CMD check --as-cran) · 2 never run
Exported functions with examples
94%
Documented parameters
99%
Return-value docs
100%
Help pages citing references
16%

Downloads

4.5K
CRAN downloads in the past year
Rank #5,031 · ~12/day · ~371/mo
Daily download trend is not available in this view yet.
63030 days
1.7K90 days
4.5K1 year
Compare downloads with other packages →
Also on77 r2u43 autocran

Repository

4Stars
1Forks
1Open issues
1Open PRs
3Releases
9Commits
2Commit identities
9 commits · Last activity 2026-10-03 · 0% stars, 30d
Responsiveness
not measured

Stars over time

2026-03-12 · 12026-07-07 · 4
PracticesBeta

3 development-tooling and community-health practices detected across 3 families in the upstream repository

Checks run against github.com/muhammedalkhalaf/ardlverse on 2026-10-22.

Governance and community (1)

The repository owner accepts GitHub Sponsors

CRAN release process (1)
cran-comments.md
Research and citation (1)
Zenodo
How this is detected·Detection ruleset v4 (2026-10-20)
AI coding toolsBeta

This repository shows signs of AI coding tools.

  • Claude Codefirst seen 2026-09-27
    Commits: at least 7 crediting it in the message
Models named in its commits
  • Claude Opus 5.54 commits · Sep to Oct 2026
  • Claude Fable 5.13 commits · Sep 2026
Counts are commits, not lines of code. Commits by a tool's accounts count once across all of its accounts. Commits crediting it are the largest count among its credit lines, a minimum.How this is detected·Detection ruleset v4 (updated 2026-09-27)

Dependencies

Declared dependencies
8 external dependencies (excludes base and recommended)

Installing ardlverse adds 23 packages (11 with compiled code, 16 MB of source tarballs). Heaviest: ggplot2 6.0 MB, isoband 1.5 MB, farver 1.2 MB.

Depends (1)
R >= 4.0.0
Imports (8)
statsMASSquantreglmtestggplot2gridExtragraphicsgrDevices
LinkingTo (0)
none
Enhances (0)
none
Reverse dependencies
0direct
0indirect

Nothing depends on this yet.

Datasets

People & History

People (2)
Author, Maintainer since 1.1.2 (2026)
Contributor · added in 2.0.0
Bug fixes and PMG/MG/DFE corrections for panel_ardl in v2.0.0 (KSE)
Listed in earlier versions (1)
no longer listed · 1.1.2 to 2.0.0
Releases (6)

Pick two releases to compare their code metrics.

  • 2.1.0Latest
    record
    2026-10-10 · current release · diff ↗ ·
    added 1 export
    fbnardl
    ·
    6 days in CRAN's queue
    Listed in CRAN's incoming queue from 2026-10-03 21:57 to 2026-10-10 03:36 UTC, in 28 readings.
  • 2.0.3
    record
    2026-09-30 · diff ↗
  • 2.0.2
    record
    2026-09-28 · diff ↗
  • 2.0.0
    record
    2026-06-29 · diff ↗
  • R
    R 4.6.0 released · 2026-04-24
  • 1.1.3
    record
    2026-03-14 · diff ↗
  • 1.1.2
    record
    2026-03-11
  • R
    R 4.5.0 released · 2025-04-11
Across CRAN, the median accepted release of the past year spent 26 hours in the queue, 90% under 11 days.How queue time is measured

Package metadata

First published
2026-03-11
Total releases
6 / 1 yrs
License
GPL-3 OSI
Minimum R
≥ 4.0.0
Bundled data
21 KB / 3 files
Download size
317 KB

Cite

Cite this package

Run in R for the authors' preferred citation:

citation("ardlverse")
Alkhalaf, M. A., & Levchenko, Y. (2026). ardlverse: Comprehensive ARDL: Panel, Bootstrap and Fourier Methods (Version 2.1.0) [Computer software]. https://doi.org/10.32614/CRAN.package.ardlverse

This package has no citation file, so citation() returns this entry built from DESCRIPTION.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for ardlverse version 2.1.0 [Data set]. HJJB, LLC. Data release v2026-10-24. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy