9 votos

Se ha encontrado un buen ajuste de GARCH(1,1), ¿cómo predecir la volatilidad de un día antes?

He utilizado los datos de SPY para ajustar GARCH(1,1) en mi modelo. Mis datos comienzan desde enero de 2000 hasta diciembre de 2013. He comparado la volatilidad utilizando runSD en la ventana de 21 rolling y GARCH(1,1). Parece un ajuste bastante bueno hasta ahora.

Mi pregunta sería ¿cómo puedo prever la volatilidad futura a partir de diciembre de 2013? ¿Debería simplemente utilizar el coeficiente para calcular la volatilidad del día siguiente? Pero ¿qué pasa si quiero simular 10 días por delante? Hay una forma sencilla de hacer esto en R? He mirado ugarchroll y no entiendo muy bien esa función. ¡Espero que ustedes puedan arrojar algo de luz!

Gracias.

Aquí están los coeficientes y el resumen de GARCH usando el paquete tseries:

Call:
garch(x = dailyreturn[, 1], order = c(1, 1))

Coefficient(s):
       a0         a1         b1  
1.637e-06  8.857e-02  9.001e-01  

Call:
garch(x = dailyreturn[, 1], order = c(1, 1))

Model:
GARCH(1,1)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.1755 -0.5418  0.0716  0.6266  4.0432 

Coefficient(s):
    Estimate  Std. Error  t value Pr(>|t|)    
a0 1.637e-06   2.266e-07    7.223  5.1e-13 ***
a1 8.857e-02   7.074e-03   12.520  < 2e-16 ***
b1 9.001e-01   7.916e-03  113.703  < 2e-16 ***
---
Signif. codes:  0 ?**?0.001 ?*?0.01 ??0.05 ??0.1 ??1

Diagnostic Tests:
    Jarque Bera Test

data:  Residuals
X-squared = 358.7767, df = 2, p-value < 2.2e-16

    Box-Ljung test

data:  Squared.Residuals
X-squared = 7.8313, df = 1, p-value = 0.005135

6voto

Ah, esto se está convirtiendo en una pregunta común, justo en R ahora. Por favor, mira esta [pregunta] ( Modelo GARCH y predicción ), tiene código R para hacer la predicción.

En resumen, sigues prediciendo con un día de antelación. $\sigma_{t+k}^2 =w+\alpha u_{t+k-1}^2+\beta \sigma_{t+k-1}^2$ . Usted ya sabe $ w,\space \alpha \space and \space \beta $ los valores de partida son los últimos valores de la serie temporal de rendimientos y la varianza de Garch en ese momento. Así, la primera previsión será $\sigma_{t+1}^2 =w+\alpha u_{t}^2+\beta \sigma_{t}^2$ y la previsión del segundo día será $\sigma_{t+2}^2 =w+\alpha u_{t+1}^2+\beta \sigma_{t+1}^2$ y así sucesivamente...

3voto

¿Por qué no usas rugarch paquete? Puede consultar la página web de ejemplo del autor a través de Breve introducción al paquete rugarch .

## example forc1 = ugarchforecast(fit, n.ahead = 500) forc2 = ugarchforecast(spec, n.ahead = 500, data = sp500ret[1:1000, , drop = FALSE]) forc3 = ugarchforecast(spec, n.ahead = 1, n.roll = 499, data = sp500ret[1:1500, , drop = FALSE], out.sample = 500) f1 = as.data.frame(attributes(forc1)[[1]]$seriesFor[1]) f2 = as.data.frame(attributes(forc2)[[1]]$seriesFor[1]) f3 = t(as.data.frame(attributes(forc3)[[1]]$seriesFor[1], which = 'sigma', rollframe = 'all', aligned = FALSE)) U = uncvariance(fit)^0.5

n.ahead es el parámetro de previsión con cuántos días de antelación. Consulte Previsión con el paquete rugarch .

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