I did a Johansen test.
The max eigenvalue test resulted in 5 cointegrated variables with contegration rank being 1.
The trace test resulted in 5 cointegrated variables with contegration rank being 3.
Below is the estimated VECM with cointegration rank of 3:
cajorls(ca.jo(mydata, ecdet="none", type="trace", spec="transitory", K=29),r=3)
$rlm
Call:
lm(formula = substitute(form1), data = data.mat)
Coefficients:
BIST100.d Gold.d Oil.d TRY_USD.d USD_EUR.d
ect1 -4.843e-02 2.939e-05 1.634e-04 -7.808e-07 9.200e-07
ect2 -1.780e+02 1.322e-01 2.673e-01 5.668e-04 1.891e-03
ect3 -1.217e+01 2.622e-02 1.023e-02 -1.245e-04 4.935e-04
constant -1.335e+04 1.941e+01 -1.246e+01 2.701e-01 1.689e-01
BIST100.dl1 -2.772e-02 2.683e-05 -1.036e-04 -4.862e-06 -2.745e-07
Gold.dl1 9.454e+01 -4.467e-03 6.449e-02 4.761e-03 -3.065e-04
...... ...... ...... .... ..... .......
$beta
ect1 ect2 ect3
BIST100.l1 1.000000e+00 0.000000e+00 4.336809e-19
Gold.l1 -1.136868e-13 1.000000e+00 0.000000e+00
Oil.l1 -3.197442e-14 2.775558e-17 1.000000e+00
TRY_USD.l1 1.152179e+05 -4.851482e+01 -5.183614e+01
USD_EUR.l1 8.984704e+04 -8.461897e+01 -3.174152e+02
I expect an error correction term of the format $y_1-\beta_2 y_2-\beta_3 y_3-\beta_4 y_4-\beta_5 y_5$. Or equivalently, all signs being "$-$" in the above ect1, ect2, ect3 terms. All are not "$-$", e.g., for the 1st ect1: -4.843e-02, +2.939e-05, +1.634e-04, -7.808e-07, +9.200e-07. There are "$+$" and "$-$" coefficients in the error correction terms above.
Does this show wrong unsuitable formulation in VECM? The cointegration rank is either 1 (max eigen) or 3 (trace). Both present "$+$" and "$-$" coefficients in error correction terms.
Below is the estimated VECM with cointegration rank of 1:
cajorls(ca.jo(mydata, ecdet="none", type="eigen", spec="transitory", K=29),r=1)
$rlm
Call:
lm(formula = substitute(form1), data = data.mat)
Coefficients:
BIST100.d Gold.d Oil.d TRY_USD.d USD_EUR.d
ect1 6.592e-03 -1.138e-05 1.275e-05 -1.830e-07 -8.523e-08
constant -1.035e+04 1.782e+01 -1.999e+01 2.857e-01 1.334e-01
BIST100.dl1 -5.707e-02 5.970e-05 -1.134e-05 -5.482e-06 6.044e-07
...... ...... ...... .... ..... .......
$beta
ect1
BIST100.l1 1.000
Gold.l1 -5829.934
Oil.l1 -1100.681
TRY_USD.l1 455111.151
USD_EUR.l1 932542.892
Any idea? Can I go with the usual ritual vec2var(ca.jo(...), r=1 or r=3) or something must be handled properly?