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.