*! version 1.0.6 06feb2023

Title

ardlbounds -- tabulate critical values for ARDL bounds test

Syntax

Standard behavior

ardlbounds , case(#) [ stat(stattype) n(#) k(#) sr(#) siglevels(levellist) pvalue(statval) ]

Tabular presentation over the number of weakly exogenous model variables k

ardlbounds , table case(#) [ stat(stattype) n(#) kmax(#) lags(#) ]

case(#) show CVs for model deterministics case case

stat(stattype) show CVs for statistic stattype; stattype is either 't' or 'F'

n(#) show CVs for sample size n; default: display asymptotic CVs

k(#) show results for k weakly exogenous model variables; default: k=0

sr(#) specify number of short-run coefficients; default: sr=0

siglevels(numlist) show CVs for levels in levelslist; default: '10 5 1'.

pvalue(statval) show p-value for value statval of the stattype-statistic

table build table over weakly exogenous model variables

kmax(#) tabulate up to kmax weakly exogenous model variables

lags(#) show results for lags lags for all levels regressors in the model

See ardl for more information about ARDL estimation.

Description

ardlbounds displays critical values and approximate p-values for the bounds test for a level
relationship based on the response surface regressions of Kripfganz and Schneider (2020).
As with many other test statistics in the analysis of non-stationary times series,
these magnitudes are somewhat difficult to obtain since they relate to non-standard distributions.

Regression-based predicted critical values and approximate p-values can be obtained for any combination
of values of the sample size, the number of weakly exogenous model variables, and the model lag structure.

The response surface regression methodology as used by ardlbounds was mainly developed by MacKinnon (1991) and MacKinnon (1996).

Abbreviations and definitions used in this help entry

See the abbreviations section of ardl.

Options

case(#) determines a particular specification of model deterministics.
CVs differ across model deterministics cases.

stat(stattype) determines one of two possible statistics to be checked.
stattype must be either 't' or 'F', with 'F' being the default.
The option is not case-sensitive.

n(#) show CVs for the effective sample size n, i.e. the total number of observations
minus the number of observations used up for lags.
This magnitude is reported by ardl in e(N).
If the option is omitted, asymptotic CVs are displayed.

k(#) show results for k weakly exogenous model variables. CVs differ across k.

sr(#) specifies the number of short-run coefficients. For an ARDL(p,q_1,...,q_k) model,

sr = max(0,p-1) + q_1 + ... + q_k

The number of short-run coefficients matters only for finite samples.
This option is therefore ignored if n is not specified.

siglevels(numlist) shows CVs for levels in the siglevels numlist, which must have at least one element
and must be supplied in descending order.
The default numlist is '10 5 1'. Levels are specified as percentiles but do allow for two digits after the decimal point.
There are 221 different levels among which you can choose, indicated by the Stata numlist

00.01 00.02 00.05 00.10(00.10)00.90 01.00(00.50)98.50 99.00(00.10)99.90 99.95 99.98 99.99

pvalue(statval) shows the (approximate) I(0)/I(1) p-values for value statval of the statistic.

Since the calculation of approximate p-values may fail to give sensible results for
values of statval that are outside the range of the critical values for percentile levels 00.01-99.99,
we set p-values to 0 or 1 in these cases.
Therefore, in the returned matrix r(cvmat), a p-value exactly equal to 0 (1) should
be interpreted as <0.0001 (>0.9999), which is unlikely to ever matter in practice.
The calculation of approximate p-values follows MacKinnon (1996);
see Kripfganz and Schneider (2020) for details.

table displays an expanded CV table over increasing numbers of weakly exogenous model variables.
This options exists mainly to facilitate comparisons to the CVs tabulated in
Pesaran, Shin, and Smith (2001) and Narayan (2005),
who provide non-regression-based, simulation design-specific critical value tabulations.

Options kmax and lags() can only be used in conjunction with option table.

kmax(#) specifies that the tabulation of CVs ranges from zero up to kmax weakly exogenous model variables.

lags(#) show results for lags lags for all levels regressors in the model.
ardlbounds calculates CVs according to the number of implied short-run coefficients for each level of k.
For example, ARDL(3,3) and ARDL(3,3,3) models have 5 and 8 short-run coefficients, respectively.
See option sr() above.
The number of lags (short-run coefficients) matters only for finite samples.

Examples

We check ardlbounds against a few, randomly chosen numbers from the empirical example of
PSS. They report the following (p.311/312):

I0/I1 5% level bounds of (3.05, 3.97) for : case 4, k=4, lags=4, n=1000

I0/I1 5% level bounds of (3.47, 4.57) for : case 5, k=4, lags=4, n=1000

I0/I1 5% level bounds of (3.19, 4.16) for : case 4, k=4, lags=4, n= 104

I0/I1 5% level bounds of (3.61, 4.76) for : case 5, k=4, lags=4, n= 104

We compare this to the magnitudes returned by ardlbounds. Moreover, we supply the value of the
F-statistic in question, 2.99, to get an approximate p-value as an additional piece of information.
Note that the assumption of 4 lags per variable implies 3 + 4*4 = 19 short-run coefficients
(see option sr() above).

. ardlbounds , c(4) k(4) sr(19) n(1000) pval(2.99)

. ardlbounds , c(5) k(4) sr(19) n(1000) pval(2.99)

. ardlbounds , c(4) k(4) sr(19) n(104) pval(2.99)

. ardlbounds , c(5) k(4) sr(19) n(104) pval(2.99)

While the numbers for the large sample (n=1000) are very close, some small differences arise for the small sample numbers (n=104).
This, however, should mostly be unrelated to simulation or methodological differences, but to the fact that ardlbounds
takes into account the number of short run regressors, which the simulations of PSS do not.
Asymptotically, this does not matter, which is why the results for n=1000 are close.
To confirm this, we re-run ardlbounds,
setting the number of short-run coefficients to zero (the default):

. ardlbounds , c(4) k(4) n(104) pval(2.99)

. ardlbounds , c(5) k(4) n(104) pval(2.99)

The resulting numbers are again fairly close to what PSS report.

Saved results

ardlbounds saves the following in r():

Scalars
r(k) # of weakly exogenous model variables

r(case) model deterministics case used for tabulation

if option n() was used:

r(N) sample size used for tabulation

r(sr) # of short-run coefficients in the model

Macros
r(stat) 't' or 'F'

r(siglevels) levels of critical values tabulated

Matrices
r(cvmat) matrix of critical values; also contains approximate p-values if option pvalue() was used

Authors

Sebastian Kripfganz, University of Exeter Business School, S.Kripfganz@exeter.ac.uk

Daniel C. Schneider, Max Planck Institute for Demographic Research, schneider@demogr.mpg.de

Also see

Other commands of the ardl package: ardl