[R-SIG-Finance] Computational Time using rugarch package

Ivanov Ruporvrich ivanovruporvrich at yahoo.com
Mon Jun 10 19:56:00 CEST 2013


Sorry for bothering you again, but I now also tried

resume(rollalv,solver="hybrid")

,because in the manual it says this one tries different solvers, but still I get two error messages in which cases it says:

"failed to invert hessian"



----- Ursprüngliche Message -----
Von: alexios ghalanos <alexios at 4dscape.com>
An: Ivanov Ruporvrich <ivanovruporvrich at yahoo.com>
CC: alexios ghalanos <alexios at 4dscape.com>; "r-sig-finance at r-project.org" <r-sig-finance at r-project.org>
Gesendet: 18:27 Montag, 10.Juni 2013
Betreff: Re: [R-SIG-Finance] Computational Time using rugarch package

Assume the object you tried to estimate is called 'roll'.

Then do the following:

roll = resume(roll, solver="gosolnp")

The 'resume' method takes a uGARCHroll object which contains 
non-converged 'windows' and re-estimates
them subject to additional options (e.g. different solver, control 
options, starting parameters in a revised
uGARCHspec etc).

You might also like to read the post on rolling GARCH forecasts which 
explains how to 'roll your own' rolling forecast:
http://www.unstarched.net/2012/12/26/rolling-garch-forecasts/

-Alexios

On 06/10/2013 07:18 PM, Ivanov Ruporvrich wrote:
>
> Thanks a lot for your answer,
> I tried your code and run it for 7 hours, but it did not completely suceed:
>
> First of all, I got different warning messages which say:
>
>
> 27: In .makefitmodel(garchmodel = "fGARCH", f = .fgarchLLH,  ... :
> rugarch-->warning: failed to invert hessian
>
>
> Two warning messages say:
> 28: In nlminb(start = pars, objective = fun, gradient = gr,  ... :
>    unrecognized control elements named ‘tol’ ignored
>
> One further message says:
> 30: In .rollfdensity(spec = spec, data = data, n.ahead = n.ahead,  ... :
> non-converged estimation windows present...resubsmit object with different solver parameters...
>
>
> If I want to look at the output via the show() command, I get the message:
> Object contains non-converged estimation windows. Use resume method to re-estimate.
>
>
> So my question now is: How can I reestimate just the windows which did not converge? So how do I have to apply the resume method in this case?
>
>  From your excellent short "a-short-introduction-to-the-rugarch-package" of the unstarched homepage it says:
>
>
> "A key feature of this method is the existence of a rescue method called resume which allows the resumption of the estimation when there are
> non-converged windows, by submitting the resulting object into resume
> with the option of using a different solver, control parameters etc.
> This process can be continued until all windows converge, thus not
> wasting time and resources by having to resubmit the whole problem from
> scratch."
>
> But I don't know how to code this in my case? So what options do I have to take and what code should I run?
>
>
> Thanks a lot again for your help,
> Ivanov
>
>
>
>
> ________________________________
> Von: alexios ghalanos <alexios at 4dscape.com>
> An: Ivanov Ruporvrich <ivanovruporvrich at yahoo.com>
> CC: "r-sig-finance at r-project.org" <r-sig-finance at r-project.org>; alexios at 4dscape.com
> Gesendet: 9:12 Montag, 10.Juni 2013
> Betreff: Re: [R-SIG-Finance] Computational Time using rugarch package
>
>
>
> You say that you are aware that more observations would be better to get more consistent estimates, yet you
> use a moving window of size 262 on a highly non-linear variant of
>        GARCH (NAGARCH) with a non-normal distribution,
> and you wonder WHY you have difficulty in estimating the model?
>
> This issue of dataset size has been extensively covered in this
>        forum in the past (and very recently in fact), and in the
> FAQ of the vignette where suggestions are also made about the use
>        of the scaling option, setting
> solver parameters or using alternative solvers.
>
> -Alexios
>
> Try:
> rollmodel = ugarchroll(garchspecification, mydata, n.start=262,
>                         refit.every = 1, refit.window = 'moving',
>        window.size = 262,
>                         calculate.VaR = TRUE, keep.coef = TRUE,
>        solver.control=list(tol=1e-6, trace=1), fit.control=list(scale=1))
>
> On 06/10/2013 08:44 AM, Ivanov Ruporvrich wrote:
>
> Hi,
> I am using the rugarch package in R and I have a certain model, which I want to reestimate on a daily basis using ugarchroll. I am aware of the fact, that my problem is caused by the reason, that I do the reestimation daily, but since I really need the daily reestimation I cannot change this parameter (change to an higher number). My problem is, that reestimation on a daily basis takes a lot of time. I ran my pc for 7 hours but I did not get a result, when I pressed ESC I got 4 or 5 warning messages that the hessian could not be inverted. So my main question is: Is there any chance to get this estimation running? Maybe change the solver or something like that? I do not have a problem with running R for like 6 hours or so, at least if I get a result afterwards. My R code is: (I use 262 observations for each window, I am aware of the fact, that
> more observations would be better in order to get more consistent
> estimates.) library(rugarch) garchspecification<-ugarchspec(variance.model = list(model="fGARCH",submodel="NAGARCH", garchOrder = c(1, 1)),
> mean.model = list(armaOrder = c(1, 0), include.mean = FALSE),
> distribution.model = "ged") rollmodel = ugarchroll(garchspecification, mydata, n.start=262,
>   refit.every = 1, refit.window = 'moving', window.size = 262,
>    calculate.VaR = TRUE, keep.coef = TRUE) I attached the data. Thanks a lot for your help,
> Ivanov
>>
>> _______________________________________________ R-SIG-Finance at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first.
> -- Also note that this is not the r-help list where general R questions should go.



More information about the R-SIG-Finance mailing list