bounds_t_test {ARDL} | R Documentation |
Bounds t-test for no cointegration
Description
bounds_t_test
performs the t-bounds test for no cointegration
Pesaran et al. (2001). It is a t-test on the parameters of a UECM
(Unrestricted Error Correction Model).
Usage
bounds_t_test(
object,
case,
alpha = NULL,
pvalue = TRUE,
exact = FALSE,
R = 40000,
vcov_matrix = NULL
)
Arguments
object |
An object of |
case |
An integer (1, 3 or 5) or a character string specifying whether the 'intercept' and/or the 'trend' have to participate in the short-run relationship (see section 'Cases' below). Note that the t-bounds test can't be applied for cases 2 and 4. |
alpha |
A numeric value between 0 and 1 indicating the significance
level of the critical value bounds. If |
pvalue |
A logical indicating whether you want the p-value to be
provided. The default is |
exact |
A logical indicating whether you want asymptotic (T = 1000) or
exact sample size critical value bounds and p-value. The default is
|
R |
An integer indicating how many iterations will be used if
|
vcov_matrix |
The estimated covariance matrix of the random variable
that the test uses to estimate the test statistic. The default is
|
Value
A list with class "htest" containing the following components:
method |
a character string indicating what type of test was performed. |
alternative |
a character string describing the alternative hypothesis. |
statistic |
the value of the test statistic. |
null.value |
the value of the population parameters |
data.name |
a character string giving the name(s) of the data. |
parameters |
numeric vector containing the critical value bounds. |
p.value |
the p-value of the test. |
PSS2001parameters |
numeric vector containing the critical value bounds as presented by Pesaran et al. (2001). See section 'alpha, bounds and p-value' below for details. |
tab |
data.frame containing the statistic, the critical value bounds, the alpha level of significance and the p-value. |
Hypothesis testing
\Delta y_{t} = c_{0} + c_{1}t +
\pi_{y}y_{t-1} + \sum_{j=1}^{k}\pi_{j}x_{j,t-1} +
\sum_{i=1}^{p-1}\psi_{y,i}\Delta y_{t-i} +
\sum_{j=1}^{k}\sum_{l=1}^{q_{j}-1} \psi_{j,l}\Delta x_{j,t-l} +
\sum_{j=1}^{k}\omega_{j}\Delta x_{j,t} + \epsilon_{t}
\mathbf{H_{0}:} \pi_{y} = 0
\mathbf{H_{1}:} \pi_{y} \neq 0
alpha, bounds and p-value
In this section it is explained how the critical value bounds and p-values are obtained.
If
exact = FALSE
, then the asymptotic (T = 1000) critical value bounds and p-value are provided.Only the asymptotic critical value bounds and p-values, and only for k <= 10 are precalculated, everything else has to be computed.
Precalculated critical value bounds and p-values were simulated using
set.seed(2020)
andR = 70000
.Precalculated critical value bounds exist only for
alpha
being one of the 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.15 or 0.2, everything else has to be computed.If
alpha
is one of the 0.1, 0.05, 0.025 or 0.01 (andexact = FALSE
and k <= 10),PSS2001parameters
shows the critical value bounds presented in Pesaran et al. (2001) (less precise).
Cases
According to Pesaran et al. (2001), we distinguish the long-run relationship (cointegrating equation) (and thus the bounds-test and the Restricted ECMs) between 5 different cases. These differ in terms of whether the 'intercept' and/or the 'trend' are restricted to participate in the long-run relationship or they are unrestricted and so they participate in the short-run relationship.
- Case 1:
-
No intercept and no trend.
-
case
inputs: 1 or "n" where "n" stands for none.
- Case 2:
-
Restricted intercept and no trend.
-
case
inputs: 2 or "rc" where "rc" stands for restricted constant.
- Case 3:
-
Unrestricted intercept and no trend.
-
case
inputs: 3 or "uc" where "uc" stands for unrestricted constant.
- Case 4:
-
Unrestricted intercept and restricted trend.
-
case
inputs: 4 or "ucrt" where "ucrt" stands for unrestricted constant and restricted trend.
- Case 5:
-
Unrestricted intercept and unrestricted trend.
-
case
inputs: 5 or "ucut" where "ucut" stands for unrestricted constant and unrestricted trend.
Note that you can't restrict (or leave unrestricted) a parameter that doesn't
exist in the input model. For example, you can't compute recm(object,
case=3)
if the object is an ARDL (or UECM) model with no intercept. The same
way, you can't compute bounds_f_test(object, case=5)
if the object is
an ARDL (or UECM) model with no linear trend.
References
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
Author(s)
Kleanthis Natsiopoulos, klnatsio@gmail.com
See Also
Examples
data(denmark)
## How to use cases under different models (regarding deterministic terms)
## Construct an ARDL(3,1,3,2) model with different deterministic terms -
# Without constant
ardl_3132_n <- ardl(LRM ~ LRY + IBO + IDE -1, data = denmark, order = c(3,1,3,2))
# With constant
ardl_3132_c <- ardl(LRM ~ LRY + IBO + IDE, data = denmark, order = c(3,1,3,2))
# With constant and trend
ardl_3132_ct <- ardl(LRM ~ LRY + IBO + IDE + trend(LRM), data = denmark, order = c(3,1,3,2))
## t-bounds test for no level relationship (no cointegration) ----------
# For the model without a constant
bounds_t_test(ardl_3132_n, case = 1)
# or
bounds_t_test(ardl_3132_n, case = "n")
# For the model with a constant
# Including the constant term in the short-run relationship (unrestricted constant)
bounds_t_test(ardl_3132_c, case = "uc")
# or
bounds_t_test(ardl_3132_c, case = 3)
# For the model with constant and trend
# Including the constant term and the trend in the short-run relationship
# (unrestricted constant and unrestricted trend)
bounds_t_test(ardl_3132_ct, case = "ucut")
# or
bounds_t_test(ardl_3132_ct, case = 5)
## Note that you can't use bounds t-test for cases 2 and 4, or use a wrong model
# For example, the following tests will produce an error:
## Not run:
bounds_t_test(ardl_3132_n, case = 2)
bounds_t_test(ardl_3132_c, case = 4)
bounds_t_test(ardl_3132_ct, case = 3)
## End(Not run)
## Asymptotic p-value and critical value bounds (assuming T = 1000) ----
# Include critical value bounds for a certain level of significance
# t-statistic is larger than the I(1) bound (for a=0.05) as expected (p-value < 0.05)
btt <- bounds_t_test(ardl_3132_c, case = 3, alpha = 0.05)
btt
btt$tab
# Traditional but less precise critical value bounds, as presented in Pesaran et al. (2001)
btt$PSS2001parameters
# t-statistic doesn't exceed the I(1) bound (for a=0.005) as p-value is greater than 0.005
bounds_t_test(ardl_3132_c, case = 3, alpha = 0.005)
## Exact sample size p-value and critical value bounds -----------------
# Setting a seed is suggested to allow the replication of results
# 'R' can be increased for more accurate resutls
# t-statistic is smaller than the I(1) bound (for a=0.01) as expected (p-value > 0.01)
# Note that the exact sample p-value (0.009874) is very different than the asymptotic (0.005538)
# It can take more than 90 seconds
## Not run:
set.seed(2020)
bounds_t_test(ardl_3132_c, case = 3, alpha = 0.01, exact = TRUE)
## End(Not run)