Solved – How to forecast from VECM (in R)

forecastingrtime seriesvector-autoregressionvector-error-correction-model

I am interested in forecasting with a vector error correction model (VECM). I am facing a problem of not being able to transform a cointegrated series into a VECM model using the stationary series.

In multivariate forecast like VAR or VECM it is important to see which of the two models to use for forecasting. To decide whether to use a VAR or a VECM:

  • First, we do a cointegration test using the ca.jo function from "urca" package in R.
  • If we find that there is no cointegrating vector suggested by the Johansen procedure, then we can run a VAR model. But if we find evidence of cointegration then we have to use a VECM model in order to incorporate the error correction coefficients in the model.
  • To test if there is cointegration in the series we use Johansen test on the data in levels, i.e. in non-stationary form. But after we find evidence of cointegration we have to incorporate as many cointegrating vectors in the VECM as the number suggested by the Johansen test. But then this time the VECM should have been run on stationary series having made them differenced.
  • But in R I am not getting the option as to how to make a VECM model differenced and then forecast it. R manuals are suggesting that we should use the function vec2var to convert a VECM to a VAR model and then forecast the VAR model thus obtained.
  • But the VAR model thus obtained from the VECM is at levels and not at differenced form. Hence, inference from this may be biased.

I just want to run a VECM in differenced series (not in levels) and also to include the error correction term. Please help me with this.

Best Answer

If you are interested in forecasting (as you state in the beginning and repeat multiple times) rather than making inference (which you mention once), then

  1. estimating a VECM,
  2. transforming it into a VAR model and
  3. forecasting using the VAR model

is fine. The point forecasts and the confidence intervals will be fine. Note that VECM and the corresponding VAR model are two equivalent representations of the same model. The model outcomes do not change just because you manipulate the equations algebraically a little bit. The equations constituting the VECM and the corresponding VAR model are representing one and the same phenomenon.

Technically you could forecast directly from the VECM; the model equations give you the increments in the dependent variables for the next period, so it is straightforward. But probably it was computationally convenient for the authors of the R packages "urca" and/or "vars" to program a forecasting routine for VAR models only; so then a VECM needs to be converted to a VAR model.