Computational Time using rugarch package
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 <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.