GARCH Models in Python
Chelsea Yang
Data Science Instructor
Volatility is not directly observable
GARCH model use residuals as volatility shocks $$ r_t = \mu_t + \epsilon_t $$
Volatility is related to the residuals: $$ \epsilon_t = \sigma_t * \zeta (WhiteNoise)$$
gm_std_resid = gm_result.resid / gm_result.conditional_volatility
plt.hist(gm_std_resid, facecolor = 'orange',label = 'standardized residuals')
$\nu$ parameter of a Student's t-distribution indicates its shape
arch_model(my_data, p = 1, q = 1,
mean = 'constant', vol = 'GARCH',
dist = 't')
Distribution
========================================================================
coef std err t P>|t| 95.0% Conf. Int.
.-----------------------------------------------------------------------
nu 4.9249 0.507 9.709 2.768e-22 [ 3.931, 5.919]
========================================================================
arch_model(my_data, p = 1, q = 1,
mean = 'constant', vol = 'GARCH',
dist = 'skewt')
Distribution
===========================================================================
coef std err t P>|t| 95.0% Conf. Int.
.--------------------------------------------------------------------------
nu 5.2437 0.575 9.118 7.681e-20 [ 4.117, 6.371]
lambda -0.0822 2.541e-02 -3.235 1.216e-03 [ -0.132,-3.241e-02]
===========================================================================
GARCH Models in Python