VECM: Estimation of Vector error correction model (VECM)

View source: R/lineVar.R

VECMR Documentation

Estimation of Vector error correction model (VECM)

Description

Estimate a VECM by either Engle-Granger (2OLS) or Johansen (MLE) method.

Usage

VECM(
  data,
  lag,
  r = 1,
  include = c("const", "trend", "none", "both"),
  beta = NULL,
  estim = c("2OLS", "ML"),
  LRinclude = c("none", "const", "trend", "both"),
  exogen = NULL
)

Arguments

data

multivariate time series (first row being first=oldest value)

lag

Number of lags (in the VECM representation, see Details)

r

Number of cointegrating relationships

include

Type of deterministic regressors to include

beta

for VECM only: user-specified cointegrating values, the cointegrating vector will be taken as: (1, -beta) If NULL, will be estimated using the estimator specified in estim

estim

Type of estimator: 2OLS for the two-step approach or ML for Johansen MLE

LRinclude

Type of deterministic regressors to include in the long-term relationship. Can also be a matrix with exogeneous regressors (2OLS only).

exogen

Inclusion of exogenous variables (first row being first=oldest value). Is either of same size than data (then automatically cut) or than end-sample.

Details

This function is just a wrapper for the lineVar, with model="VECM".

More comprehensive functions for VECM are in package vars. Differences with that package are:

Engle-Granger estimator

The Engle-Granger estimator is available

Presentation

Results are printed in a different ways, using a matrix form

lateX export

The matrix of coefficients can be exported to latex, with or without standard-values and significance stars

Prediction

The predict method contains a newdata argument allowing to compute rolling forecasts.

Two estimators are available: the Engle-Granger two step approach (2OLS) or the Johansen (ML). For the 2OLS, deterministic regressors (or external variables if LRinclude is of class numeric) can be added for the estimation of the cointegrating value and for the ECT. This is only working when the beta value is not pre-specified.

The arg beta is the cointegrating value, the cointegrating vector will be taken as: (1, -beta).

Note that the lag specification corresponds to the lags in the VECM representation, not in the VAR (as is done in package vars or software GRETL). Basically, a VAR with 2 lags corresponds here to a VECM with 1 lag. The lag can be set to 0, although some methods (irf, fevd) won't work for this case.

#'The arg beta allows to specify constrained cointegrating values, leading to ECT= β^{'}X_{t-1}. It should be specified as a K \times r matrix. In case of r=1, can also be specified as a vector. Note that the vector should be normalised, with the first value to 1, and the next values showing the opposite sign in the long-run relationship - β. In case the vector has K-1 values, this is what lineVar is doing, setting (1, - β). Note finally one should provide values for all the coefficients (eventually except for special case of r=1 and k-1), if you want to provide only part of the parameters, and let the others be estimated, look at the functions in package urca.

The eigenvector matrix β is normalised using the Phillips triangular representation, see Hamilton (1994, p. 576) and Juselius (2006, p. 216), see coefA for more details.

Value

An object of class VECM (and higher classes VAR and nlVar) with methods:

Usual methods:

Print, summary, residuals, fitted, vcov

Fit criteria:

AIC, BIC, MAPE, mse, logLik (the latter only for models estimated with MLE)

Prediction:

predict and predict_rolling

coef extraction:

Extract cointegrating/adjustment coefficients, coefA, coefB coefPI

VAR/VECM methods:

Impulse response function (irf.VECM) and forecast error variance decomposition (fevd)

LaTeX:

toLatex

Author(s)

Matthieu Stigler

References

Hamilton (1994) Time Series Analysis, Princeton University Press

Juselius (2006) The Cointegrated VAR model, Oxford University Press

See Also

coefA, coefB and coefPI to extract the relevant parameter matrices.

lineVar TVAR and TVECM for the corresponding threshold models. linear for the univariate AR model.

Examples


data(zeroyld)
data<-zeroyld

#Fit a VECM with Engle-Granger 2OLS estimator:
vecm.eg<-VECM(zeroyld, lag=2)

#Fit a VECM with Johansen MLE estimator:
vecm.jo<-VECM(zeroyld, lag=2, estim="ML")

#compare results with package vars:
if(require(vars)) {
 data(finland)
 #check long coint values
   all.equal(VECM(finland, lag=2, estim="ML", r=2)$model.specific$beta, 
             cajorls(ca.jo(finland, K=3, spec="transitory"), r=2)  $beta, check.attributes=FALSE)
# check OLS parameters
  all.equal(t(coefficients(VECM(finland, lag=2, estim="ML", r=2))), 
    coefficients(cajorls(ca.jo(finland, K=3, spec="transitory"), r=2)$rlm), check.attributes=FALSE)

}


##export to Latex
toLatex(vecm.eg)
toLatex(summary(vecm.eg))
options("show.signif.stars"=FALSE)
toLatex(summary(vecm.eg), parenthese="Pvalue")
options("show.signif.stars"=TRUE)




tsDyn documentation built on Feb. 16, 2023, 6:57 p.m.