Estimate a VECM by either Engle-Granger (2OLS) or Johansen (MLE) method.
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
)
An object of class VECM
(and higher classes VAR
and
nlVar
) with methods:
Print, summary, residuals, fitted, vcov
AIC, BIC, MAPE
, mse
, logLik
(the latter only for models estimated with MLE)
predict and predict_rolling
Extract cointegrating/adjustment coefficients, coefA
, coefB
coefPI
Impulse response function (irf.VECM
) and forecast error variance
decomposition (fevd
)
toLatex
multivariate time series (first row being first=oldest value)
Number of lags (in the VECM representation, see Details)
Number of cointegrating relationships
Type of deterministic regressors to include
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
Type of estimator: 2OLS
for the two-step approach or
ML
for Johansen MLE
Type of deterministic regressors to include in the long-term relationship. Can also be a matrix with exogeneous regressors (2OLS only).
Inclusion of exogenous variables (first row being first=oldest value). Is either of same size than data (then automatically cut) or than end-sample.
Matthieu Stigler
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:
The Engle-Granger estimator is available
Results are printed in a different ways, using a matrix form
The matrix of coefficients can be exported to latex, with or without standard-values and significance stars
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
lineVar
is doing, setting
The eigenvector matrix coefA
for more details.
Hamilton (1994) Time Series Analysis, Princeton University Press
Juselius (2006) The Cointegrated VAR model, Oxford University Press
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.
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)
Run the code above in your browser using DataLab