17 votos

Pronóstico utilizando el paquete rugarch

Quiero avanzar un paso en pronósticos dentro de la muestra. Puedes encontrar mis datos aquí. Esto es simplemente un marco de datos con la fecha como nombres de filas.

Especifico mi modelo, realizo el ajuste y muestro los gráficos con

library(rugarch)
model <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), 
mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), 
distribution.model = "norm")

modelfit <- ugarchfit(spec=model,data=mydata)
plot(modelfit)

Ahora quiero realizar pronósticos dentro de la muestra de un paso adelante de mi media condicional y volatilidad condicional.

Para esto utilizo el comando ugarchfit:

ugarchforecast(modelfit,n.ahead=1,data=mydata)

Pero este es solo un valor para la última fecha. Así que quiero tener esto para cada dato comenzando desde el principio hasta mis valores finales. Estos deberían ser pronósticos de un paso adelante que utilicen los parámetros del modelo especificado y mis datos. ¿Cómo puedo hacer esto?

10voto

mbyrne215 Puntos 827

Quieres establecer el parámetro n.roll al número de n.ahead, pronósticos en retroceso que deseas. (El parámetro n.ahead controla cuántos pasos adelante deseas pronosticar para cada fecha de retroceso.) Por lo tanto, al establecer n.roll a un número casi igual a tu tamaño de muestra, y configurar críticamente el parámetro out.sample casi igual a tu tamaño de muestra, le estás indicando al método que tome un ajuste especificado y trate los datos de muestra como datos externos, y así pronosticar en retroceso n.roll veces, n.ahead veces hacia adelante cada vez.

Esto es lo que debes hacer:

spec = getspec(modelfit);
setfixed(spec) <- as.list(coef(modelfit));
forecast = ugarchforecast(spec, n.ahead = 1, n.roll = 2579, data = mydata[1:2580, ,drop=FALSE], out.sample = 2579);
sigma(forecast);
fitted(forecast)

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