Why does ca.jo has a minimum lag order of 2? I am trying to use urca library to do cointegration test, and its function ca.jo, which conducts the Johansen procedure on a given data set.
I think a lag order of 1 is possible for a cointegrated VECM, which means it does not have short term error correction. For example, we have VAR(1)
$$
X_t=\Pi_1X_{t-1} + \epsilon_t
$$
and its VECM is 
$$
\Delta X_t = \Pi X_{t-1} + \epsilon_t
$$
where $\Pi=\Pi_1-I_2$
Why does ca.jo specify the minimum lag order to be 2? Is there a reason behind it?
 A: I updated the package tsDyn (version 0.9-40 submitted to CRAN), so that its VECM() function can handle your case of lag=1. Note that:


*

*With function VECM(), use lag=0 for the case you described as lag=1

*A warning will be printed, as fevd(), irf(), predict() et al are not guaranteed to work

*If you want no intercept, use: include="none"
Example:
library(tsDyn)
data(barry)
summary(VECM(barry, lag=0, estim="ML"))

#############
###Model VECM 
#############
Full sample size: 324   End sample size: 323
Number of variables: 3  Number of estimated slope parameters 6
AIC -4871.5     BIC -4848.83    SSR 29.3275
Cointegrating vector (estimated by ML):
   dolcan    cpiUSA    cpiCAN
r1      1 -0.021234 0.0402079


            ECT                 Intercept         
Equation dolcan -0.0004(0.0011)     0.0024(0.0030)    
Equation cpiUSA -0.0436(0.0155)**   0.3685(0.0413)*** 
Equation cpiCAN -0.0824(0.0214)***  0.4649(0.0572)***

A: Well I guess the reason is simply code simplicity and time... You are right that such a VECM can be estimated, but allowing it would have required to add several exceptions in the code, eventually skipping the "short term parameters concentration" step in the case lag=1, which maybe the author was not keen to do. 
But with the code at hand, you can easily adapt it for your case ;-)
