Modele GARCH w R
Kris Boudt
Professor of finance and econometrics
Jeśli dwie stopy zwrotu $R_{1,t}$ i $R_{2,t}$ mają korelację $\rho$ oraz zmienną w czasie zmienność $\sigma_{1,t}$ i $\sigma_{2,t}$, to ich kowariancja wynosi:
$$ \sigma_{12, t} = \rho \sigma_{1, t} \sigma_{2, t} $$
Krok 1: Użyj ugarchfit(), aby oszacować model GARCH dla każdej serii stóp zwrotu.
msftgarchfit <- ugarchfit(data = msftret, spec = garchspec)
wmtgarchfit <- ugarchfit(data = wmtret, spec = garchspec)
Krok 2: Użyj residuals(), aby obliczyć zestandaryzowane stopy zwrotu.
stdmsftret <- residuals(msftgarchfit, standardize = TRUE)
stdwmtret <- residuals(wmtgarchfit, standardize = TRUE)
Krok 3: Użyj cor(), aby oszacować $\rho$ jako korelację próbkową zestandaryzowanych stóp zwrotu.
msftwmtcor <- as.numeric(cor(stdmsftret, stdwmtret)) # equals 0.298795
Krok 4: Oblicz kowariancję GARCH, mnożąc oszacowaną korelację i zmienności
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)

Wariancja portfela dwóch aktywów z wagą $w_{1,t}$ zainwestowaną w aktywo 1 i $(1-w_{1,t})$ w aktywo 2:
$$ \sigma^{2}_{p, t} = w^{2}_{1, t} \sigma^{2}_{1, t} + (1 - w_{1, t})^{2} \sigma^{2}_{2, t} + 2 w_{1, t} (1 - w_{1, t}) \sigma_{12, t} $$
Istnieje wiele sposobów definiowania optymalnego $w_{1,t}$. Jednym z podejść jest wyznaczenie $w_{1,t}$ minimalizującego wariancję portfela $\sigma_{t}^2$.
Warunek pierwszego rzędu dla portfela minimalnej wariancji:
$$ \frac{\partial \sigma^{2}_{p, t}}{\partial w_{1, t}} = 2 w_{1, t} (\sigma^{2}_{1, t} + \sigma^{2}_{2, t} - 2 \sigma_{12, t}) - 2 (\sigma^{2}_{2, t} - \sigma_{12, t}) = 0 $$
Rozwiązanie: 
Obliczenia w R:
msftvar <- sigma(msftgarchfit) ^ 2
wmtvar <- sigma(wmtgarchfit) ^ 2
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)
msftweight <- (wmtvar - msftwmtcov) / (msftvar + wmtvar - 2 * msftwmtcov)

Szacowanie bety akcji mierzy ryzyko systematyczne
Zdefiniowana jako kowariancja stopy zwrotu akcji i rynku, podzielona przez wariancję stóp zwrotu rynku
$$ \beta_{t} = \frac{\textnormal{kowariancja stopy zwrotu akcji i rynku}}{\textnormal{wariancja stopy zwrotu rynku}} $$
Potrzebna do obliczenia premii za ryzyko. Im wyższa beta, tym bardziej ryzykowna akcja i wyższa wymagana stopa zwrotu.
Dla akcji amerykańskich stopą rynkową jest stopa zwrotu z S&P 500.
Obliczenie kowariancji między stopami zwrotu MSFT i S&P 500
msftsp500cor <- as.numeric(cor(stdmsftret, stdsp500ret))
msftsp500cov <- msftsp500cor * sigma(msftgarchfit) * sigma(sp500garchfit)
Obliczenie wariancji stóp zwrotu S&P 500
sp500var <- sigma(sp500garchfit) ^ 2
Obliczenie bety
msftbeta <- msftsp500cov / sp500var

Modele GARCH w R