23 votos

¿Cómo ajustar el modelo ARMA+GARCH en R?

Actualmente estoy trabajando en el modelo ARMA+GARCH utilizando R. Estoy buscando un ejemplo que explique paso a paso cómo ajustar este modelo en R. Tengo una serie de tiempo que es estacionaria y estoy tratando de predecir el valor de n períodos por delante.

He trabajado en este modelo pero estoy buscando un ejemplo en el que se utilice la función auto.arima() para seleccionar el mejor ARMA(p,q) basado en el valor de AIC.

0 votos

No estoy seguro de que encuentres un ejemplo detallado. ¿Conoces el paquete R fgarch? La función garchFit() podría ser útil para tu tarea en mano cran.r-project.org/web/packages/fGarch/fGarch.pdf

0 votos

El enlace aquí tiene documentación de auto.arima() cran.r-project.org/web/packages/forecast/forecast.pdf

0 votos

En la práctica, a menudo es más fácil simplemente hacer que la parte AR del ARMA sea lo suficientemente larga como para que encapsule la cantidad de MA que tiene la serie. De esta manera, puedes usar métodos de regresión normales en lugar de depender de métodos numéricos para ARMA.

16voto

Gavin McTaggart Puntos 1358

No sé cómo seleccionar la longitud del rezago ARMA al hacer ARMA-GARCH. Quizás alguien pueda editarlo en esta respuesta.


Para el caso univariado quieres el paquete rugarch. Si estás haciendo cosas multivariadas, quieres rmgarch. La razón por la que estos son mejores que otros paquetes es triple: (i) Soporte para variables exógenas que no he visto en ningún otro paquete, (ii) soporte para correlaciones condicionales dinámicas, (iii) soporte para una gran multitud de variantes fGARCH.

install.packages("rugarch")
require(rugarch)

Vamos a construir los datos a utilizar como ejemplo. Usar $N(0,1)$ dará resultados extraños cuando intentes usar GARCH sobre ello, pero es solo un ejemplo.

data <- rnorm(1000)

Luego podemos calcular el modelo ARMA(1,1)-GARCH(1,1) como ejemplo:

spec <- ugarchspec(variance.model = list(model = "sGARCH", 
                                         garchOrder = c(1, 1), 
                                         submodel = NULL, 
                                         external.regressors = NULL, 
                                         variance.targeting = FALSE), 

                   mean.model     = list(armaOrder = c(1, 1), 
                                         external.regressors = NULL, 
                                         distribution.model = "norm", 
                                         start.pars = list(), 
                                         fixed.pars = list()))

garch <- ugarchfit(spec = spec, data = data, solver.control = list(trace=0))

Obtener los coeficientes ARMA(1,1) y GARCH(1,1):

garch@fit$coef

Obtener la desviación estándar variable en el tiempo:

garch@fit$sigma

Obtener las perturbaciones estandarizadas $N(0,1)$ ARMA(1,1):

garch@fit$z

Ver qué más se puede obtener del ajuste:

str(garch)

6voto

frlan Puntos 154

Si te preguntas sobre el resultado teórico de ajustar parámetros, el libro GARCH Models, Structure, Statistical Inference and Financial Applications de FRANCQ y ZAKOIAN ofrece una explicación paso a paso. Creo que no es un gran problema implementar estos pasos en R.

6voto

0 votos

Hola Chris J, ¡bienvenido a Quant.SE! ¿Podrías por favor editar tu respuesta para que se sostenga por sí misma? Estos enlaces por sí solos, aunque útiles, no conforman una buena respuesta.

0 votos

Lo siento por intentar ayudar, nunca volverá a suceder.

0 votos

Yo aprecio eso y creo que necesitamos pensar en el futuro. ¿Qué pasaría si estas páginas desaparecen?

2voto

username Puntos 2235

Aquí tienes un ejemplo de ajuste de Garch en series temporales financieras. Aplicación para cambio de régimen en trading.

http://systematicinvestor.wordpress.com/2012/01/06/trading-using-garch-volatility-forecast/

1voto

Julius Alfred Puntos 6

Sé que esta es una pregunta antigua, pero me topé con ella cuando estaba buscando respuestas para el mismo problema. Este artículo fue muy útil para mí: http://www.rpubs.com/ddbs/gldforecasting

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