[R-SIG-Finance] Just finished Kris Boudt's course, running into errors from non-convergence in rugarch
alexios galanos
@lexio@ @ending from 4d@c@pe@com
Thu Nov 29 04:57:25 CET 2018
That's piqued my interest...here is my suggestion (which I have
successfully tested) for a quick solution:
1. Use variance targeting:
gjrSpec <- ugarchspec(mean.model = list(armaOrder =
c(1,0)),variance.model = list(model = "gjrGARCH",
variance.targeting=TRUE),distribution.model = "sstd")
2. remove the NA leftover from the return calculation:
na.omit(spyRets)
Alexios
On 11/28/18 7:39 PM, Ilya Kipnis wrote:
> image.png
>
> Unfortunately, the gosolnp method does not work.
>
> Tried implementing fit.control as best I understood it.
>
> image.png
>
> Also does not work.
>
> On Wed, Nov 28, 2018 at 10:33 PM alexios galanos <alexios using 4dscape.com
> <mailto:alexios using 4dscape.com>> wrote:
>
> Try setting the solver in the resume command to "gosolnp".
> It may also have helped to set fit.control(scale=1) in the ugarchroll,
> but you can set this in resume as well.
>
> Alexios
>
> On 11/28/18 7:22 PM, Ilya Kipnis wrote:
> > I just completed Kris Boudt's datacamp course on GARCH models, and
> > thought I'd give it a spin in a more reasonable setting. I've run
> into
> > an error that the course didn't cover. I'm using a rolling window
> of 504
> > trading days to try to fit a GJR-GARCH with AR1 return
> innovations and a
> > skewed student t distribution and refitting the model every 22
> days (so,
> > basically every month) on SPY returns.
> >
> > In the course, it was possible to convert this output into a data
> frame,
> > with an as.data.frame command.
> >
> > Unfortunately, the course didn't cover what happened when over the
> > course of ~300 model fits, there would be the occasional failure to
> > converge, which throws the following error:
> >
> > image.png
> >
> > Here's my MRE:
> >
> > require(rugarch)
> > require(quantmod)
> >
> > # get SPY data from Yahoo (also tried with Quandl, data isn't the
> issue)
> > getSymbols("SPY", from = '1990-01-01')
> >
> > spyRets <- Return.calculate(Ad(SPY))
> >
> > # GJR garch with AR1 innovations under a skewed student T
> distribution
> > for returns
> > gjrSpec <- ugarchspec(mean.model = list(armaOrder = c(1,0)),
> > variance.model = list(model = "gjrGARCH"),
> > distribution.model = "sstd")
> >
> > # Use rolling window of 504 days, refitting the model every 22
> trading days
> > t1 <- Sys.time()
> > garchroll <- ugarchroll(gjrSpec, data = spyRets,
> > n.start = 504, refit.window = "moving",
> > refit.every = 22)
> > t2 <- Sys.time()
> > print(t2-t1)
> >
> > # try to convert predictions to data frame, as in course -- error
> thrown
> > regarding non-converged estimation windows
> > garchroll <- as.data.frame(garchroll)
> >
> > With a screenshot for better readability:
> >
> > image.png
> > I also tried the resume command from the following post
> > https://stat.ethz.ch/pipermail/r-sig-finance/2013q2/011720.html,
> which
> > did not solve my problem.
> >
> > I feel that this is a pretty straightforward application of the
> rugarch
> > package, and that there is most likely a solution that simply wasn't
> > covered in the course. I'd be greatly appreciative if someone
> could help
> > me over this hill (albeit at the risk of revealing that I'm not
> exactly
> > an expert on GARCH models).
> >
> > Thank you so much.
> >
> > Sincerely,
> >
> > Ilya Kipnis (author of Quantstrat TradeR)
> >
> > _______________________________________________
> > R-SIG-Finance using r-project.org <mailto:R-SIG-Finance using 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.
> >
>
> _______________________________________________
> R-SIG-Finance using r-project.org <mailto:R-SIG-Finance using 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