I forgot to mention that you can also use a cluster object (if you have the computational resources) to speed things up so that
you don't wait '7 hours' for the 2308 re-estimations of the model.

-Alexios

On 06/10/2013 07:27 PM, alexios ghalanos wrote:
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 <[email protected]>
An: Ivanov Ruporvrich <[email protected]>
CC: "[email protected]" <[email protected]>; [email protected]
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

_______________________________________________ [email protected] 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.


_______________________________________________
[email protected] 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.

Reply via email to