Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to compute the standard ARMA(1,1)-GARCH(1,1) as shown in this answer for an entire index,just to store in a database to quickly lookup values for back testing purposes. There is just one problem that the optimization method used by rugarch doesn't always converge giving and yields the error. I'm using minute equity data.

failed to invert hessian

Is there an easy work around or evasive solution to guarantee that it will always converge?

share|improve this question
i've found that GARCH fails to converge often due to outliers. Try winsorizing the data at 98% and it should converge. If not try asymmetric GARCH. Best is probably to use a new outlier robust GARCH but I don't think rgarch has those yet. This might be the case with datastream data if the market is open on different days to the standard daily dates that Datastream uses, in which case there'll be a large number of zero return days, but I haven't really explored this hypothesis yet (but I suspect it given the type of data that fails to converge that I've played with). – Jase Feb 9 '13 at 6:34
Have you tried several of the different optimization methods that rugarch offers, or just the default? – Benjamin Kjellson Feb 9 '13 at 16:51
@BenjaminKjellson I've tried the solnp and the nlminb solvers not sure if there are more or which is the default – pyCthon Feb 9 '13 at 19:29
@Jase I think your right in both cases, and that my problem is a large number of zero return days( since i'm using minute data) the problem occurs much less while using daily data – pyCthon Feb 9 '13 at 19:31
up vote 3 down vote accepted

There is no guarantee that the optimization method always converges! In an introduction the author of the package recommends using the "hybrid" solver, which starts out with the "solnp" and goes through the other solvers, if it doesn't converge. According to him, this should at least guarantee convergence in 90 % of the cases.


share|improve this answer
Thanks as an add on to this answer, if you want to grantee an 100%, follow the above approach if it fails apply some data manipulation to grantee a pass. – pyCthon Feb 20 '15 at 22:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.