3.3 Asymmetric GARCH models

  • Unlike standard GARCH or GARCH–in–Mean (GARCH–M) model, asymmetric GARCH models account for the asymmetry, also known as the leverage effect

The leverage effect implies the following:

Negative news in the capital market decreases stock prices, which in turn increases a company’s leverage in the short–run (the debt–to–equity ratio), leading to higher volatility of the observed stock

  • Common asymmetric GARCH models are: EGARCH model (Exponential GARCH), GJR–GARCH model (Glosten–Jagannathan–Runkle GARCH) and APARCH model (asymmetric power ARCH). For simplicity asymmetric GARCH(1,1) models (p=q=1) are presented in Table 3.2
TABLE 3.2: Asymmetric GARCH models specification within rugarch package
Model Equation Specification Asymmetry
EGARCH(1,1) ln(σ2t)=ω+α1(|ut1|+γ1ut1σt1)+β1ln(σ2t1) model="eGARCH" γ1<0
GJR-GARCH(1,1) σ2t=ω+α1u2t1+λ1It1u2t1+β1σ2t1 model="gjrGARCH" λ1>0
APARCH(1,1,δ) σδt=ω+α1(|ut1|+γ1ut1)δ+β1σ2t1 model="apARCH" γ1>0
  • Advantage of EGARCH model is that the conditional variance is modeled in the logarithmic scale, which ensures that the estimated volatility is always non–negative regardless of the values of the coefficients, while γ1 captures the asymmetry size and α1 captures the sign effect (if α1>0 then previous shocks – positive or negative –tend to increase current volatility, and if γ1<0 then the negative shocks increase volatility more than positive shocks of the same magnitude)

  • In GJR–GARCH model It1 is indicator function that equals 1 if shock is negative (ut1<0) and zero otherwise (ut10), thus the sum α1+λ1 represents the influence of yesterday bad news on today volatility, while α1 is the good news influence (therefore it is expected that λ1>0 and statistically significant)

  • APARCH model enables a Box–Cox transformation of conditional variance, i.e. the power parameter δ determines the degree of nonlinearity, and accounts for leverage effect (parameter γ1), so it is convenient for various submodels specification (when the power δ=2 it reduces to GJR–GARCH model, when the power δ=2 and asymmetry γ1=0 it reduces to standard GARCH model, when the power δ=1 it reduces to Threshold GARCH model – TGARCH, etc.)

  • For every asymmetric GARCH type model, a news impact curve can be plotted (it is usually U shaped and centered around zero, but steeper on the left side, meaning that negative shocks lead to a larger increase in volatility)

  • Regardless of the conditional variance specification within asymmetric GARCH type models, it is necessary to assume a particular theoretical distribution of innovations in order to apply the MLE method

Example 13. Using Tesla returns estimate EGARCH(1,1) model considering standard t–distribution while keeping degrees of freedom fixed to 5 by setting argument fixed.pars=list(shape=5). Do the same for GJR–GARCH(1,1) model and APARCH(1,1) models. Display the results of estimated models egarch, gjrgarch and aparch in a single table within modelsummary() command. From the best fit asymmetric GARCH(1,1) model plot a news impact curve. What is the response of Tesla volatility to 1% positive schock and 1% negative shock?
Solution Copy the code lines below to the clipboard, paste them into an R Script file, and run them.
In this example GJR–GARCH(1,1) is the best fit with positive λ1 indicating the presence of the leverage effect, although insignificant. For the same reason negative shocks tend to increase volatility just slightly more than positive shocks as exhibited by the news impact curve. In fact GJR–GARCH(1,1) combines two conditional variances:
σ2t={0.00001+0.03229u2t1+0.95127σ2t1,     if  ut100.00001+0.05345u2t1+0.95127σ2t1,     if  ut1<0 Note: the shape parameter of standard Students’ t–distribution controls the heaviness of the tails, and if you have strong intuition about it’s value (from empirical practices), then fixing degrees of freedom is reasonable as fewer parameters are estimated.
# Three asymmetric GARCH specifications
model.spec4 <- ugarchspec(mean.model = list(armaOrder = c(0,0), include.mean = TRUE, 
                                           external.regressors = NULL), 
                         variance.model = list(model = "eGARCH", garchOrder = c(1,1), # EGARCH specification
                                               submodel = NULL, external.regressors = NULL), # 
                         distribution.model = "std", # standard t-distribution
                        fixed.pars=list(shape=5)) # fixing degrees of freedom 

model.spec5 <- ugarchspec(mean.model = list(armaOrder = c(0,0), include.mean = TRUE, 
                                           external.regressors = NULL), 
                         variance.model = list(model = "gjrGARCH", garchOrder = c(1,1), # GJR-GARCH specification
                                               submodel = NULL, external.regressors = NULL), # 
                         distribution.model = "std", # standard t-distribution
                        fixed.pars=list(shape=5)) # fixing degrees of freedom 

model.spec6 <- ugarchspec(mean.model = list(armaOrder = c(0,0), include.mean = TRUE, 
                                           external.regressors = NULL), 
                         variance.model = list(model = "apARCH", garchOrder = c(1,1), # GJR-GARCH specification
                                               submodel = NULL, external.regressors = NULL), # 
                         distribution.model = "std", # standard t-distribution
                        fixed.pars=list(shape=5)) # fixing degrees of freedom 

# ML estimation of new models
egarch <- ugarchfit(spec = model.spec4, data = returns)
gjrgarch <- ugarchfit(spec = model.spec5, data = returns)
aparch <- ugarchfit(spec = model.spec6, data = returns)

modelsummary(list("EARCH(1,1)"=egarch,
                  "GJR-GARCH(1,1)"=gjrgarch,
                  "APARCH(1,1,d)"=aparch),
             stars = c("***"=0.01, "**"=0.05, "*"= 0.1),fmt=5)

# Plotting news impact curve from best fit asymmetric GARCH model
plot(gjrgarch, which=12)

# Volatility response to positive shock
coef(gjrgarch)[3]

# Volatility response to negative shock
coef(gjrgarch)[3]+coef(gjrgarch)[5]