He ajustado dos modelos GARCH que compiten entre sí, uno GARCH(1,2)
modelo y otro EGARCH(1,1,1)
ambos con errores distribuidos en t, sobre los rendimientos logarítmicos de EquinorASA (acciones de gas noruegas). No voy a realizar las comprobaciones preliminares, pero los supuestos de GARCH(1,2)
aguantar.
He utilizado el conocido libro de Kevin Shepard arco biblioteca. Para seleccionar el modelo, me gustaría dividir la serie temporal en tren/prueba (esto se hace fácilmente con TimeSeriesSplit
de sklearn
).
Para simplificar, vamos a considerar sólo el GARCH(1,2)
modelo.
Esto es un extracto del código:
logr_train, logr_test = logr[train_index], logr[test_index]
N_train = len(train_index)
N_test = len(test_index)
specs = {
'mean':'zero',
'vol':'GARCH',
'p':1,
'q':2,
'dist':'t',
'rescale':True
}
model = arch_model(y=logr_train, **specs)
res = model.fit(first_obs=0, last_obs=len(logr_train))
forecast = res.forecast(horizon=N_test, method='simulation', simulations=1000, reindex=False)
Esta es la impresión del resumen:
El dilema : qué ¿comparamos realmente entre el tren y la prueba?
¿Qué he considerado hasta ahora?
-
Volatilidad empírica de los rendimientos logarítmicos de prueba frente a la expectativa de volatilidad simulada Esto sería simplemente:
forecast.variance.shape # second dimension is the same as size of test time-series (1, 499) np.sqrt(forecast.variance.values[0][-1]) # this is slicing the last value of the simulations (when it converges) 1.6180795243550963 np.std(logr_test) 100 1.1331922351104446 error = np.sqrt(forecast.variance.values[0][-1]) - np.std(logr_test) 100 error 0.4848872892446516
-
¿Hay alguna forma de recuperar de alguna manera los retornos de los registros?
Desde GARCH(1,2)
se define como: $$ X_{t} = \sigma_{t}Z_{t} \\ Z_{t} \sim N(0,1) \\ \sigma_{t}^{2} = \alpha_{0} + \alpha_{1}X^{2}_{t-1} + \beta_{1}\sigma^{2}_{t-1} + \beta_{2}\sigma^{2}_{t-2} $$
Dados los parámetros estimados, ¿podría haber una forma de calcular previsto $\hat{X_{t+n}}^{2}$ y luego calcular el error entre éste y los rendimientos logarítmicos de $X_{t+n}$ de la muestra de ensayo?
Ya he revisado las preguntas y respuestas aquí para " evaluación de los modelos garch " y " Modelo GARCH, ¿expectativa de volatilidad? ", en vano.