*! version 1.0.0 24feb2026

Title

mvardlurt -- Multivariate ARDL Unit Root Test with Bootstrap Critical Values

Syntax

mvardlurt
depvar
indepvar
[if] [in]
[, options]

Model
case(#) regression case; 1 = no deterministics,
3 = intercept (default), 5 = intercept + trend

maxlag(#) maximum ARDL lag order; default is 10

ic(string) information criterion for lag selection;
aic (default) or bic

fixlag(# #) manually specify lag orders p q instead of auto-selection

Bootstrap
reps(#) number of bootstrap replications; default is 1000

seed(#) random number seed; default is 12345

noboot suppress bootstrap; display observed statistics only

Display
level(#) confidence level; default is 95

notable suppress AIC/BIC selection table

diag display diagnostic tests (Breusch-Godfrey, ARCH, RESET, White, Jarque-Bera)

nograph suppress graphs

Data must be tsset before using mvardlurt. Panel data is not supported.

Description

mvardlurt implements the multivariate ARDL unit root test proposed by
Sam, McNown, Goh, and Goh (2024). This test augments the standard ADF regression
with the lagged level of a covariate (independent variable) to improve power,
especially when cointegration exists between the dependent and independent variables.

The command produces four output tables:

Table 1 -- ARDL Unit Root Test: main results including model specification,
test statistics, and sample information (matches the EViews table_result format).

Table 2 -- Bootstrap Critical Values: bootstrap-based critical values at
10%, 5%, 2.5%, and 1% significance levels for both t and F tests.

Table 3 -- Coefficient Summary: estimated coefficients for pi (unit root) and
delta (cointegration), their standard errors, and the implied long-run multiplier.

Table 4 -- Decision and Inference: comprehensive decision table with hypothesis test
results, the four-case framework from Sam et al. (2024), and a detailed conclusion.

The test provides two test statistics:

t-statistic: tests H0: pi = 0 (the dependent variable has a unit root),
computed as the t-ratio on the lagged level of the dependent variable.
Reject if t < t-critical (left-tail test).

F-statistic: tests H0: delta = 0 (no cointegrating relationship via the
independent variable), computed as the Wald statistic on the lagged level of
the independent variable.
Reject if F > F-critical (right-tail test).

Because the null distributions are non-standard and nuisance-parameter dependent,
mvardlurt generates bootstrap critical values using the parametric
bootstrap procedure of Sam et al. (2024). The bootstrap imposes the joint null
hypothesis (pi = 0, delta = 0), resamples residuals with replacement, and
regenerates the data recursively to simulate the null distribution.

Options

Model

case(#) specifies the deterministic terms in the regression.
This directly corresponds to the EViews %regtype variable:

case(1): no intercept, no trend (EViews: %regtype = "n").
The regression is estimated with noconstant.

case(3): intercept only (default; EViews: %regtype = "i").
This is the most common specification.

case(5): intercept and trend (EViews: %regtype = "t").
Includes a deterministic linear trend.

maxlag(#) specifies the maximum lag order to consider during AIC/BIC-based
lag selection. Default is 10. The optimal ARDL(p, q) model is selected via
exhaustive grid search over p = 0, ..., maxlag and q = 0, ..., maxlag.
The number of models evaluated is (maxlag+1)^2.

ic(string) specifies the information criterion for lag selection.
aic (Akaike, default) or bic (Bayesian/Schwarz).
Both criteria are computed from the standard formula:
AIC = -2*LL + 2*k; BIC = -2*LL + k*ln(n).

fixlag(# #) manually specifies the lag orders p (for dy) and q
(for dx), bypassing automatic selection. For example, fixlag(2 3)
specifies ARDL(2, 3). This is useful when the researcher has prior knowledge
of the appropriate lag structure.

Bootstrap

reps(#) specifies the number of bootstrap replications. The default is 1000.
Minimum is 100. Recommended values for published work are:

1000: adequate for exploratory analysis

2000: good for most applications

5000: recommended for publication

10000: best precision (matches the Sam et al. EViews default)

seed(#) specifies the random number seed for reproducibility. Default is 12345,
following the EViews program convention.

noboot suppresses the bootstrap. Only the observed t-statistic and
F-statistic are displayed in Table 1, but no critical values (Table 2)
or decision (Table 4) are available.

Display

notable suppresses the AIC/BIC lag selection table. The optimal model
is still selected and used, but the full grid is not displayed.

diag displays diagnostic tests after the main results. Tests include:
Breusch-Godfrey serial correlation (lag 1), ARCH LM (lag 1),
Ramsey RESET, White heteroskedasticity, and Jarque-Bera normality.
By default, diagnostics are not shown to keep output focused on the
unit root test results.

nograph suppresses all graphical output. By default, mvardlurt
produces diagnostic plots.

Output tables

Table 1: ARDL Unit Root Test

Displays the main model information and test statistics in a format equivalent
to the EViews table_result object. Includes dependent/independent variables,
sample period, optimal ARDL(p,q) model, AIC, R-squared, and the observed
t-statistic (tests unit root) and F-statistic (tests no cointegration).

Table 2: Bootstrap Critical Values

Shows bootstrap critical values at the 10%, 5%, 2.5%, and 1% significance
levels for both the t-test and F-test. These are the quantiles of the
bootstrap distribution generated under the joint null hypothesis.
The t-critical values are from the lower tail (reject if t < critical),
and the F-critical values are from the upper tail (reject if F > critical).

Table 3: ARDL Coefficient Summary

Reports the key estimated coefficients from the ARDL ECM regression:

pi (unit root coefficient): the coefficient on L.depvar. A significantly
negative pi implies error correction / stationarity.

delta (cointegration coefficient): the coefficient on L.indepvar. A
significant delta implies that indepvar enters the long-run equilibrium.

Long-run multiplier (delta/pi): the implied long-run effect of a unit
change in indepvar on depvar in the cointegrating relationship.

Table 4: Decision and Inference

Provides a comprehensive decision summary in three parts:

Part A -- Hypothesis Tests: Shows whether each test rejects or fails to
reject the null, with significance stars and level.

Part B -- Four-Case Framework: Displays all four possible outcome combinations
from Sam et al. (2024) with an arrow (=>) marking the applicable case.

Part C -- Conclusion: Provides the detailed economic interpretation of the
applicable case, including the integration order and cointegration status.

Four-case decision framework

Following Sam, McNown, Goh, and Goh (2024), the joint use of both t-test and
F-test produces four possible cases:

Case t-test F-test Conclusion

I Reject Reject Cointegration: ECM is valid
II Reject Accept Degenerate 1: y may be I(0)
III Accept Reject Degenerate 2: spurious
IV Accept Accept No cointegration: y is I(1)

Case I -- Cointegration: Both tests reject their nulls. The dependent
variable is stationary (or error-correcting), and the independent variable
enters the long-run equation. This provides evidence of a cointegrating
relationship, and the error correction model is valid.

Case II -- Degenerate case 1: Only the t-test rejects. The dependent variable
appears to be stationary or I(0), but the independent variable does not contribute
to the long-run equilibrium. The independent variable is not a cointegrator.

Case III -- Degenerate case 2: Only the F-test rejects. The independent
variable appears significant, but the dependent variable has a unit root. This
is a spurious result -- the unit root in the dependent variable invalidates
the long-run relationship. See Sam et al. (2024) for details.

Case IV -- No cointegration: Both tests fail to reject their nulls. The
dependent variable has a unit root and there is no cointegrating relationship
with the independent variable.

Methodology

The multivariate ARDL unit root test regression (ECM form) is:

Case 1 (no deterministics):

Dy_t = pi * y_ + delta * x_ + sum(phi_j * Dy_) + sum(psi_k * Dx_) + e_t

Case 3 (intercept): same as above + c

Case 5 (trend): same as above + c + t

Automatic lag selection:

When fixlag() is not specified, mvardlurt performs an exhaustive grid
search over all ARDL(p,q) specifications with p = 0,...,maxlag and q = 0,...,maxlag.
The optimal model minimizes the selected information criterion (AIC or BIC).
This mirrors the EViews algorithm exactly.

Test Statistics:

t-statistic: t-ratio on y_; reject H0 (unit root) if t < t-critical (left-tail)

F-statistic: Wald test on x_; reject H0 (no cointegration) if F > F-critical (right-tail)

Bootstrap Procedure:

1. Estimate restricted model under H0 (setting pi = 0 and delta = 0)

2. Extract residuals and recenter to mean zero

3. Resample residuals with replacement

4. Generate bootstrap dependent variable recursively using estimated DGP

5. Re-estimate the unrestricted model on bootstrap data

6. Store bootstrap t and F statistics

7. Repeat steps 3-6 for reps replications

8. Compute critical values as quantiles of bootstrap distributions

The bootstrap ensures correct size and excellent power regardless of whether
the series is nonstationary, stationary, or cointegrated.

Examples

Example 1: Basic test with automatic lag selection (intercept case)

. webuse lutkepohl2, clear

. tsset

. mvardlurt ln_inv ln_inc, case(3) maxlag(4) reps(1000)

This runs the multivariate ARDL unit root test on ln_inv using ln_inc
as the covariate, with intercept (Case 3), maximum 4 lags, and 1000 bootstrap
replications. The output includes Tables 1-4 with test statistics, bootstrap
critical values, coefficient summary, and the decision framework.

Example 2: Trend case with BIC selection and more replications

. mvardlurt ln_inv ln_inc, case(5) maxlag(6) ic(bic) reps(5000)

Includes a deterministic trend (Case 5), uses BIC for lag selection with maximum
6 lags, and increases bootstrap replications to 5000 for publication quality.

Example 3: No deterministic terms (Case 1)

. mvardlurt ln_inv ln_inc, case(1) maxlag(4) reps(1000)

Example 4: Manual lag specification

. mvardlurt ln_inv ln_inc, fixlag(2 1) case(3) reps(1000) nograph

Manually sets ARDL(2,1) and suppresses graphs. Useful when the researcher
knows the appropriate lag structure.

Example 5: Quick preliminary check without bootstrap

. mvardlurt ln_inv ln_inc, case(3) maxlag(4) noboot nograph

Shows Tables 1 and 3 (test statistics and coefficients) without bootstrap
critical values. Useful for a quick preliminary analysis.

Example 6: Full analysis with diagnostics

. mvardlurt ln_inv ln_inc, case(3) maxlag(4) reps(2000) diag

Includes diagnostic tests (Breusch-Godfrey, ARCH, RESET, White, Jarque-Bera)
in addition to the standard output tables.

Example 7: Accessing stored results

. mvardlurt ln_inv ln_inc, case(3) maxlag(4) reps(1000) nograph

. display "t-stat = " e(tstat)

. display "5% t-crit = " e(t_cv05)

. display "F-stat = " e(fstat)

. display "5% F-crit = " e(f_cv05)

. display "Long-run multiplier = " e(lr_mult)

Stored results

mvardlurt stores the following in e():

Scalars

e(tstat) observed t-statistic on L.depvar

e(fstat) observed F-statistic on L.indepvar

e(fstat_p) asymptotic p-value for F-test

e(pi_coef) coefficient on L.depvar (pi)

e(pi_se) standard error on L.depvar

e(delta_coef) coefficient on L.indepvar (delta)

e(delta_se) standard error on L.indepvar

e(lr_mult) long-run multiplier (delta/pi)

e(opt_p) optimal lag p for Dy

e(opt_q) optimal lag q for Dx

e(case) regression case (1, 3, or 5)

e(reps) number of bootstrap replications

e(T) sample size

e(aic) Akaike information criterion

e(bic) Bayesian information criterion

e(t_cv10) bootstrap t-critical value at 10%

e(t_cv05) bootstrap t-critical value at 5%

e(t_cv025) bootstrap t-critical value at 2.5%

e(t_cv01) bootstrap t-critical value at 1%

e(f_cv10) bootstrap F-critical value at 10%

e(f_cv05) bootstrap F-critical value at 5%

e(f_cv025) bootstrap F-critical value at 2.5%

e(f_cv01) bootstrap F-critical value at 1%

Macros

e(cmd) mvardlurt

e(cmdline) full command as typed

e(depvar) dependent variable name

e(indepvar) independent variable name

e(casename) case description (e.g. "Intercept Only")

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

e(title) model title

Matrices

e(b) coefficient vector from the optimal ARDL regression

e(V) variance-covariance matrix

e(aic_table) (maxlag+1) x (maxlag+1) matrix of IC values (if auto-selection)

References

Sam, C. Y., McNown, R., Goh, S. K., and Goh, K. L. (2024). A multivariate
autoregressive distributed lag unit root test. Studies in Economics and
Econometrics, 1-17.

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

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

Author

Dr. Merwan Roudane

Independent Researcher

Email: merwanroudane920@gmail.com

Please cite:

Sam, C. Y., McNown, R., Goh, S. K., and Goh, K. L. (2024). A multivariate
autoregressive distributed lag unit root test. Studies in Economics and
Econometrics, 1-17.