Closed nlmm7 closed 2 years ago
Thanks, you are right. I've fixed the multi-step predictions for the :variance
target in #98. Forecasting the volatility correctly is trickier. What the package has been doing so far is to just take the square root of the variance predictions, which is wrong beyond 1-step ahead because of Jensen's inequality.
I've disabled multi-step predictions for the :volatility
target for now, and also for :variance
for EGARCH
models, for the same reason.
Thanks for the great package!
I noticed a discrepancy with the rugarch package for multi-step predictions of volatility, and I think there might be an issue with the calculation of this in the ARCHModels package.
Taking the documentation example (https://s-broda.github.io/ARCHModels.jl/stable/usage/) of the GARCH(1, 1) fit on the BG96 data: the long run volatility estimate is sqrt(omega / (1 - alpha1 - beta1) which is about 0.514. However, the example on that page for predictions for horizons 1:3 shows a sequence of volatilities 0.384, 0.360, 0.339 (one would expect it to converge to 0.514).
I think the issue is caused by taking zt and at equal to zero in the predict function, while E[at^2] is equal to the variance and larger than zero.