I am trying to model and forecast the volatility of stock returns and I am not sure if what I am doing is correct. My issue is mostly with GARCH and its application. If I want to model the volatility of stock return, would fitting a GARCH to it be an appropriate method? I realize the model isn't going to be great, but this is mostly practice, if you will.
Furthemore, if I would fit a GARCH on stockreturns, say if I have a GARCH(2,1), then would the regression on my (y)t look like:
NOTE: t and t-1 represent time period. a, b and d are coefficients c is a constant.
(y)t = c + a*(σ^2)t + (e)t
or
(y)t = c + (e)t
? If its the latter, then how does GARCH enter into the regression?
While the (σ^2)t formula would be:
(σ^2)t = c + a*(e^2)t-1 + b*(e^2)t-2 + d*(σ^2)t-1
Assuming I am correct about fitting a GARCH into the stock returns, then to model the volatility of the stock I could use the following command:
garchFit(formula = ~garch(2,1), data = StockReturns$DowJonesReturns)
And then I choose the lags based on the the AIC, which can be obtained by using summary() on the code above. Is this valid, or is there a better method for choosing GARCH lags?
Title:
GARCH Modelling
Call:
garchFit(formula = ~garch(2, 1), data = StockReturns$DowJonesReturns)
Mean and Variance Equation:
data ~ garch(2, 1)
<environment: 0x1461eef8>
[data = StockReturns$DowJonesReturns]
Conditional Distribution:
norm
Coefficient(s):
mu omega alpha1 alpha2 beta1
0.066543 0.030719 0.062670 0.086457 0.824586
Std. Errors:
based on Hessian
Error Analysis:
Estimate Std. Error t value Pr(>|t|)
mu 0.066543 0.015325 4.342 1.41e-05 ***
omega 0.030719 0.005464 5.622 1.88e-08 ***
alpha1 0.062670 0.021139 2.965 0.003031 **
alpha2 0.086457 0.026001 3.325 0.000884 ***
beta1 0.824586 0.017826 46.257 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Log Likelihood:
-3405.385 normalized: -1.339648
Description:
Sat May 13 20:16:02 2017 by user:
Standardised Residuals Tests:
Statistic p-Value
Jarque-Bera Test R Chi^2 207.7602 0
Shapiro-Wilk Test R W 0.9849516 9.114147e-16
Ljung-Box Test R Q(10) 21.76658 0.01633891
Ljung-Box Test R Q(15) 30.04193 0.0117712
Ljung-Box Test R Q(20) 32.01694 0.04311811
Ljung-Box Test R^2 Q(10) 6.949068 0.7302444
Ljung-Box Test R^2 Q(15) 11.35256 0.7272252
Ljung-Box Test R^2 Q(20) 17.23784 0.6374799
LM Arch Test R TR^2 6.966663 0.8598087
Information Criterion Statistics:
AIC BIC SIC HQIC
2.683230 2.694718 2.683222 2.687397
Finally, looking at the final output, I'm not completely sure what it is I've actually done, mainly due to my lack of understanding of how garch enters the equation in the first place. I would presume alpha
and beta
are coefficients for (e^2)t-1 and (σ^2)t-1 correct? and mu
and omega
are constants? Are these coefficients for the y(t) or something else?