Processing math: 100%

25 votos

Algoritmo para ajustar el modelo AR(1)/GARCH(1,1) de los rendimientos logarítmicos

Estoy ajustando numéricamente un proceso AR(1)/GARCH(1,1) a los retornos logarítmicos de índices y acciones, rt=log(Pt/Pt1) , donde Pt es el precio en el momento t y hasta ahora no tengo claro dónde se utilizarían los rendimientos logarítmicos observados en un algoritmo. Varios grupos de autores han descrito (algunos en parte) los componentes del enfoque AR(1)/GARCH(1,1), por ejemplo:

E. Zivot: rt=μ+ϕ(rt1μ)+ϵt

Rachev et al: rt=μ+ϕrt1ϵt=σtδt(δt is an innovation)σt=α0+α1ϵ2t1+β1σ2t1

Brummelhuis & Kaufman: Xt=μt+σtϵtμt=λXt1σt=α0+α1(Xt1μt1)2+β1σ2t1

Jalal & Rockinger: μt=ϕXt1ϵt=Xtμtσt=α0+α1ϵ2t1+β1σ2t1

Mi enfoque:

μt=μ+ϕrt1ϵt=rtμtσt=α0+α1ϵ2t1+β1σ2t1

Dadas las múltiples descripciones anteriores, mi interpretación para un algoritmo sería:

Algoritmo para AR(1)/GARCH(1,1):

  1. Inicializar μ=0 , σ1=1 , ϵ1=0 , μ=ϕ=α0=α1=β1=U(0,1)0.01

  2. Para t = 2 a T :

  3. μt=μ+ϕrt1(Log-returns lag-1 input here)

  4. ϵt=rtμt(Log-returns lag-0 input here)

  5. σt=α0+α1ϵ2t1+β1σ2t1

  6. ˆrt=ϕμt1+σtϵtOR:ˆrt=μ+ϕμt1+σtϵt???

  7. Siguiente t

  8. Calcula el residuo, et=rtˆrt

  9. Determinar MSE=1Tte2t

El algoritmo propuesto anteriormente es esencialmente la parte recursiva para calcular los rendimientos logarítmicos previstos ˆrt a partir de los rendimientos observados de entrada rt . Innovaciones o cuantiles aleatorios de una distribución de probabilidad [como N(0,1) o t(ν) no se emplearía aquí, ya que estamos ajustando un modelo, no simulando. Durante cada iteración, la bondad de ajuste basada en los parámetros propuestos para la función objetivo se basaría en MSE=1Ttet que se minimizaría a través de una técnica de optimización mediante regresión no lineal, diferenciación finita o MLE. También podría utilizarse la metaheurística, en la que la inicialización de los valores de los cromosomas (partículas) para (μ,ϕ,α0,α1,β1) se produciría en la primera generación.

En términos de comparación de resultados basados en R, MATLAB, SAS, etc. la parametrización sería:

mu= μ

ar1= ϕ

garch0= α0

garch1= α1

garch2= β1

No estoy seguro de si la media incondicional μ Sin embargo, sería necesario en la línea 6 del algoritmo. Por favor, comente si el algoritmo es correcto, y posiblemente sugiera cambios en la codificación. Una vez más, el objetivo es utilizar algoritmicamente métodos numéricos para resolver los parámetros, no R, MATLAB, o SAS, etc.

3 votos

Buen post Muy útil.

5 votos

Hola PEL, ¿podrías dividir este post en una pregunta y una respuesta? Ahora la pregunta parece no tener respuesta cuando en realidad sí la tiene.

3 votos

En la primera línea de la fórmula de Rachev parece faltar un término de error.

5voto

SOLUCIÓN: Sea rt sea el rendimiento logarítmico en el momento t y ˆrt el rendimiento logarítmico previsto del modelo de regresión.

  1. Inicializar loglik(0:T)=0 , ϵ1=0 , σ1=0 , μ=U(0,1)0.0001,ϕ=U(0,1)0.01 , α0=U(0,1)0.00002,α1=U(0,1)0.01,β1=0.9+U(0,1)0.01 , B=10,000
  2. Para b = 1 a B
  3. Para t = 2 a T :
  4. ˆrt=μ+ϕrt1
  5. ϵt=rtˆrt
  6. σ2t=α0+α1ϵ2t1+β1σ2t1
  7. Siguiente t
  8. loglikb=Tt{12log(σ2t)12ϵ2t/σ2t}
  9. Siguiente b

En cada iteración b el valor de la función log-verosimilitud ( loglikb ), que debe maximizarse sobre el B iteraciones, es decir, asegurarse de que aumenta durante las iteraciones.

Resultados de los parámetros tras B=10,000 iteraciones:

μ=0.000745264

ϕ=0.110093524

α0=0.00000401

α1=0.117396192

β1=0.849342676

A continuación se muestra un gráfico de la volatilidad ajustada del índice SP500 (Yahoo ^GSPC), σt , para las fechas comprendidas entre el 1/2/2001 y el 31/10/2013. La crisis de las hipotecas subprime en 2008 y el techo de deuda en 2011 son muy visibles.

Fitted SP500 volatility, $\sigma_t$, from 2001 to 2013

Además, a continuación se muestra un gráfico de los rendimientos logarítmicos observados (de entrada) (azul), rt y los rendimientos previstos filtrados por GARCH (rojo), ˆrt que revela que se ha eliminado la agrupación por volatilidad. GARCH-filtered SP500 log-returns

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