6 votos

Mensaje de error al hacer backtesting de GARCH en R

Estoy tratando de backtestear mi modelo ARCH usando ugarchroll del paquete rugarch en R, pero estoy recibiendo este mensaje de advertencia

"Mensaje de advertencia: En .rollfdensity(spec = spec, data = data, n.ahead = n.ahead, forecast.length = forecast.length, :

ventanas de estimación no convergentes presentes...vuelva a enviar el objeto con diferentes parámetros del solver."

Este es mi código

library(quantmod)
library(rugarch)

getSymbols("SPY")
rets=ROC(SPY$SPY.Close)
tgarch = ugarchspec(mean.model = list(armaOrder = c(1, 1)), 
                    variance.model = list(model = "sGARCH"),
                    distribution.model = "std")
garchroll<-ugarchroll(tgarch, data = rets,n.start =500, 
                      refit.window="window", refit.every =200)

0 votos

Gracias a todos los que han dado "Me gusta" a esta pregunta. He recibido muchos puntos, pero aún sería agradable que alguien respondiera a mi pregunta jaja

2voto

user29318 Puntos 11

El error surge porque el primer elemento de rets es NA (lo cual es un comportamiento esperado ya que ROC calcula la tasa de cambio de una serie, pero un valor previo al primer elemento naturalmente no está disponible).


Para evitar esto, añade el argumento opcional na.pad = FALSE, es decir, rets = ROC(SPY$SPY.Close, na.pad = FALSE):

> rets=ROC(SPY$SPY.Close)
> head(rets)
               SPY.Close
2007-01-03            NA
2007-01-04  0.0021198638
2007-01-05 -0.0080082993
2007-01-08  0.0046144192
2007-01-09 -0.0008502445
2007-01-10  0.0033260425

> rets = ROC(SPY$SPY.Close, na.pad = FALSE)
> head(rets)
               SPY.Close
2007-01-04  0.0021198638
2007-01-05 -0.0080082993
2007-01-08  0.0046144192
2007-01-09 -0.0008502445
2007-01-10  0.0033260425
2007-01-11  0.0043708988

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X