coint_eq | R Documentation |
Creates the cointegrating equation (long-run level relationship) providing an 'ardl', 'uecm' or 'recm' model.
coint_eq(object, case) ## S3 method for class 'recm' coint_eq(object, ...) ## Default S3 method: coint_eq(object, case)
object |
An object of |
case |
An integer from 1-5 or a character string specifying whether the
'intercept' and/or the 'trend' have to participate in the long-run level
relationship (cointegrating equation) (see section 'Cases' below). If the
input object is of class 'recm', |
... |
Currently unused argument. |
coint_eq
returns an numeric vector containing the
cointegrating equation.
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.
No intercept and no trend.
case
inputs: 1 or "n" where "n" stands for none.
Restricted intercept and no trend.
case
inputs: 2 or "rc" where "rc" stands for restricted
constant.
Unrestricted intercept and no trend.
case
inputs: 3 or "uc" where "uc" stands for unrestricted
constant.
Unrestricted intercept and restricted trend.
case
inputs: 4 or "ucrt" where "ucrt" stands for
unrestricted constant and restricted trend.
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.
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
Kleanthis Natsiopoulos, klnatsio@gmail.com
ardl
uecm
recm
bounds_f_test
bounds_t_test
data(denmark) library(zoo) # for cbind.zoo() ## Estimate the Cointegrating Equation of an ARDL(3,1,3,2) model ------- # From an ARDL model (under case 2, restricted constant) ardl_3132 <- ardl(LRM ~ LRY + IBO + IDE, data = denmark, order = c(3,1,3,2)) ce2_ardl <- coint_eq(ardl_3132, case = 2) # From an UECM (under case 2, restricted constant) uecm_3132 <- uecm(ardl_3132) ce2_uecm <- coint_eq(uecm_3132, case = 2) # From a RECM (under case 2, restricted constant) # Notice that if a RECM has already been estimated under a certain case, # the 'coint_eq()' can't be under different case, so no 'case' argument needed. recm_3132 <- recm(uecm_3132, case = 2) # The RECM is already under case 2, so the 'case' argument is no needed ce2_recm <- coint_eq(recm_3132) identical(ce2_ardl, ce2_uecm, ce2_recm) ## Check for a degenerate level relationship --------------------------- # The bounds F-test under both cases reject the Null Hypothesis of no level relationship. bounds_f_test(ardl_3132, case = 2) bounds_f_test(ardl_3132, case = 3) # The bounds t-test also rejects the NUll Hypothesis of no level relationship. bounds_t_test(ardl_3132, case = 3) # But when the constant enters the long-run equation (case 3) # this becomes a degenerate relationship. ce3_ardl <- coint_eq(ardl_3132, case = 3) den <- cbind.zoo(LRM = denmark[,"LRM"], ce2_ardl, ce3_ardl) if (requireNamespace("xts", quietly = TRUE)) { library(xts) den <- xts(den) plot(den, legend.loc = "right") plot(den[,-3], legend.loc = "right") } else { plot(den, col = c(1,2,3), screens = 1) legend("right", lty = 1, legend = colnames(den), col = c(1:3)) plot(den[,-3], col = c(1,2), screens = 1) legend("top", lty = 1, legend = colnames(den[,-3]), col = c(1:2)) }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.