GARCH Models in R
Kris Boudt
Professor of finance and econometrics
$$ \mu_{t} = \mu + \lambda \sigma^2_{t} $$
$\lambda > 0$ is the risk/reward parameter indicating the increase in expected return per unit of variance risk.
Change the argument mean.model
in ugarchspec()
from list(armaOrder = c(0, 0))
to list(armaOrder = c(0, 0), archm = TRUE, archpow = 2)
:
garchspec <- ugarchspec(
mean.model = list(armaOrder = c(0, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
garchspec <- ugarchspec(
mean.model = list(armaOrder = c(0, 0), archm = TRUE, archpow = 2),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
Estimation
garchfit <- ugarchfit(data = sp500ret, spec = garchspec)
Inspection of estimated coefficients for the mean
round(coef(garchfit)[1:2], 4)
mu archm
0.0002 1.9950
Predicted mean returns
$$ \hat{\mu}_{t} = 0.0002 + 1.9950 \hat{\sigma}^2_{t} $$
plot(fitted(garchfit))
$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$
$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$
$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) $$
Specification and estimation of AR(1)-GJR GARCH with sst distribution
garchspec <- ugarchspec(
mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
garchfit <- ugarchfit(data = sp500ret, spec = garchspec)
Estimates of the AR(1) model
round(coef(garchfit)[1:2], 4)
mu ar1
0.0003 -0.0292
The Moving Average model of order 1 uses the deviation of the return from its conditional mean:
$$ \mu_{t} = \mu + \theta(R_{t-1} - \mu_{t-1}) $$
ARMA(1,1) combines AR(1) and MA(1):
$$ \mu_{t} = \mu + \rho(R_{t-1} - \mu) + \theta(R_{t-1} - \mu_{t-1}) $$
MA(1)
garchspec <- ugarchspec(
mean.model = list(armaOrder = c(0, 1)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
ARMA(1, 1)
garchspec <- ugarchspec(
mean.model = list(armaOrder = c(1, 1)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
GARCH Models in R