[R-SIG-Finance] ACD vs GARCH

enjo faes enjo@|@e@ @end|ng |rom hotm@||@com
Wed May 26 11:29:09 CEST 2021


Dear all,

In the light of the research with two fellow colleagues, we are already making a lot of progress thanks to the last very detailed answer by Alex Garland.

  1.  We did a brief analysis already with over 100 Garch models (8 volatility models, 5 conditional distributions: norm, sstd, std, ged, sged & various arma orders) estimated via rugarch by Alexios Galanos and comparing them using AIC.
  2.  From visualizing the models we observed the general trend that for all models the skewed student’s t-distribution is the “best” conditional density (lowest AIC) for all GARCH models tested.
  3.  We then did a moving window approach using the ugarchroll. Which works perfectly.
  4.  As an extension of our analysis we wanted to compare the garch models with time varying higher moments using the racd package. Although there is already a lot of literature there in the past decades and I must say the documentation about this is already very helpful on unstarched and the vignette, but I cannot figure out why there is never convergence using the skewed student’s t (see indicated warning).
     *   I followed Bali et al. (2008) “In this paper, we adopt the conditional density approach initiated by Hansen (1994) and extended by Jondeau and Rockinger (2003) to model the conditional high-order moment parameters of the SGT density as follows:
[cid:image001.png using 01D75219.D9E013C0]
where lambdat is the unrestricted skewness parameter (sometimes referred to as “xi”) and etat and kappat are the unrestricted kurtosis parameters.
     *   So I would think this is basically using the “pwl” for the skew and shape order as in the documentation of racd is stated: “Jondeau and Rockinger (2003) used, among other tested parameterizations, first order piecewise linear dynamic”.
Below is my code

spec = racd::acdspec(mean.model = list(armaOrder = c(1, 0)), variance.model = list(variance.targeting = FALSE),distribution.model = list(model = 'sstd', skewOrder = c(1, 1, 1), shapeOrder = c(1,1,1), skewmodel = 'pwl', shapemodel = 'pwl'))

cl = makePSOCKcluster(10)
rollacd = racd::acdroll(sGARCH_ACDspec, data = R, n.start = 2500, refit.every = 500,refit.window = "moving", solver = "hybrid", calculate.VaR = TRUE, VaR.alpha = 0.05, cluster = cl, fit.control = list(), solver.control = list())
stopCluster(cl)

It might have something to do with the distribution “sstd” because “jsu” for example works very well and extremely fast. But still is there a way to solve this for the “sstd”? I always get “non-converged estimation windows present...resubsmit object with different solver parameters...” Tried the resume() command with another solver, change the tolerance inside of the solver.control list, change the window sizes, other suggestions?

Looking forward hearing from you,
Best,
Enjo

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20210526/e31b86e7/attachment.html>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 72145 bytes
Desc: image001.png
URL: <https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20210526/e31b86e7/attachment.png>


More information about the R-SIG-Finance mailing list