Recursive VECM
Posted: Sun Jan 23, 2022 3:13 am
Hi Tom,
I am using data from enders AETS2014 4thEdn enders4p364.rpf.
I want to generate recursive one-step ahead OOS forecasts and SE's for the DIFFERENCE series, and back them out for the ORIGINAL series in LEVEL's, for a VECM E&G Method, as follows:
My questions are:
1. I am choosing the LR equilibrium relationships based on the minimum ADF statistic for the 3 series IS, rather than estimating & forecasting each VECM for the 3 different LR equilibrium relationships and then deciding on the "best" VECM based on OOS performance. Is this method appropriate?
2. Should the coefficients for EC term in the recursive VECM estimations always be negative, implying an adjustment back to LR equilibrium?
3. The forecasts look okay for both DIFFERENCE series and ORIGINAL LEVEL series, but the SE's for the DIFFERENCE series and ORIGINAL LEVEL series are the same, they should not be. Please advise.
thanks,
Amarjit
I am using data from enders AETS2014 4thEdn enders4p364.rpf.
I want to generate recursive one-step ahead OOS forecasts and SE's for the DIFFERENCE series, and back them out for the ORIGINAL series in LEVEL's, for a VECM E&G Method, as follows:
Code: Select all
*===============================
* Recursive VECM E&G Method
*
* Declare a VECTOR of SERIES
dec vect[series] COREFOR_S(6)
dec vect[series] COREERRORS_S(6)
*
* LEVEL{1} + DIFFERENCE
equation(identity,coeffs=||1.0,1.0||) yeq y
# y{1} dy
equation(identity,coeffs=||1.0,1.0||) zeq z
# z{1} dz
equation(identity,coeffs=||1.0,1.0||) weq w
# w{1} dw
*
*
comp istart = 1+1+1
comp ibegin = 100 - 10
comp iend = 100
*
compute regstart = istart
*
do regend = ibegin, iend
* Estimate LR equilibrium relationships for y, z, w
*
linreg(define=eyeq,noprint) y / residy regstart regend
# constant z w
diff residy / dresidy
linreg(noprint) dresidy regstart regend; *ADF test 4 lags
# residy{1} dresidy{1 to 4} constant
comp adfy = %TSTATS(1)
*
linreg(define=eyeq,noprint) z / residz regstart regend
# constant y w
diff residz / dresidz
linreg(noprint) dresidz regstart regend; *ADF test 4 lags
# residz{1} dresidz{1 to 4} constant
comp adfz = %TSTATS(1)
*
linreg(define=eyeq,noprint) w / residw regstart regend
# constant y z
diff residw / dresidw
linreg(noprint) dresidw regstart regend; *ADF test 4 lags
# residw{1} dresidw{1 to 4} constant
comp adfw = %TSTATS(1)
*
disp 'adfy:' adfy 'adfz:' adfz 'adfw:' adfw
*
*
* Choose LR equilibrium relationship with MOST NEGATIVE ADF for forecasting VECM
*
if (adfy<adfz).and.(adfy<adfw) {
system(model=vecm_model)
variables dy dz dw
lags 1
det constant residy{1}
end(system)
estimate(noftests) regstart regend
FORECAST(MODEL=vecm_model+yeq+zeq+weq,RESULTS=COREFOR_S,STDERRS=COREERRORS_S,static,steps=1) regend+1
}
else if (adfz<adfy).and.(adfz<adfw) {
system(model=vecm_model)
variables dy dz dw
lags 1
det constant residz{1}
end(system)
estimate(noftests) regstart regend
FORECAST(MODEL=vecm_model+yeq+zeq+weq,RESULTS=COREFOR_S,STDERRS=COREERRORS_S,static,steps=1) regend+1
}
else if (adfw<adfy).and.(adfw<adfz) {
system(model=vecm_model)
variables dy dz dw
lags 1
det constant residw{1}
end(system)
estimate(noftests) regstart regend
FORECAST(MODEL=vecm_model+yeq+zeq+weq,RESULTS=COREFOR_S,STDERRS=COREERRORS_S,static,steps=1) regend+1
}
end do regend
*===============================
* FORECASTS
* forecast's of the DIFFERENCE series
prin / COREFOR_S(1) COREFOR_S(2) COREFOR_S(3)
* forecast's of the ORIGINAL series in LEVELS
prin / COREFOR_S(4) COREFOR_S(5) COREFOR_S(6)
* forecast SE's of the DIFFERENCE series
prin / COREERRORS_S(1) COREERRORS_S(2) COREERRORS_S(3)
* forecast SE's of the ORIGINAL series in LEVELS
prin / COREERRORS_S(4) COREERRORS_S(5) COREERRORS_S(6)
1. I am choosing the LR equilibrium relationships based on the minimum ADF statistic for the 3 series IS, rather than estimating & forecasting each VECM for the 3 different LR equilibrium relationships and then deciding on the "best" VECM based on OOS performance. Is this method appropriate?
2. Should the coefficients for EC term in the recursive VECM estimations always be negative, implying an adjustment back to LR equilibrium?
3. The forecasts look okay for both DIFFERENCE series and ORIGINAL LEVEL series, but the SE's for the DIFFERENCE series and ORIGINAL LEVEL series are the same, they should not be. Please advise.
thanks,
Amarjit