GARCH Models in Python
Chelsea Yang
Data Science Instructor
from arch import arch_model
Develop a GARCH model in three steps:
Model assumptions:
"normal"
(default), "t"
, "skewt"
"constant"
(default), "zero"
, "AR"
"GARCH"
(default), "ARCH"
, "EGARCH"
basic_gm = arch_model(sp_data['Return'], p = 1, q = 1,
mean = 'constant', vol = 'GARCH', dist = 'normal')
Display model fitting output after every n iterations:
gm_result = gm_model.fit(update_freq = 4)
Turn off the display:
gm_result = gm_model.fit(disp = 'off')
Estimated by "maximum likelihood method"
print(gm_result.params)
mu 0.077239
omega 0.039587
alpha[1] 0.167963
beta[1] 0.786467
Name: params, dtype: float64
print(gm_result.summary())
gm_result.plot()
# Make 5-period ahead forecast
gm_forecast = gm_result.forecast(horizon = 5)
# Print out the last row of variance forecast
print(gm_forecast.variance[-1:])
h.1 h.2 h.3 h.4 h.5
Date
2019-10-10 0.994079 0.988366 0.982913 0.977708 0.972741
h.1 in row "2019-10-10": 1-step ahead forecast made using data up to and including that date
GARCH Models in Python