Modelos GARCH em R
Kris Boudt
Professor of finance and econometrics
Se dois retornos de ativos $R_{1,t}$ e $R_{2,t}$ têm correlação $\rho$ e volatilidades variando no tempo $\sigma_{1,t}$ e $\sigma_{2,t}$, então a covariância é:
$$ \sigma_{12, t} = \rho \sigma_{1, t} \sigma_{2, t} $$
Etapa 1: Use ugarchfit() para estimar o modelo GARCH para cada série de retornos.
msftgarchfit <- ugarchfit(data = msftret, spec = garchspec)
wmtgarchfit <- ugarchfit(data = wmtret, spec = garchspec)
Etapa 2: Use residuals() para calcular os retornos padronizados.
stdmsftret <- residuals(msftgarchfit, standardize = TRUE)
stdwmtret <- residuals(wmtgarchfit, standardize = TRUE)
Etapa 3: Use cor() para estimar $\rho$ como a correlação amostral dos retornos padronizados.
msftwmtcor <- as.numeric(cor(stdmsftret, stdwmtret)) # equals 0.298795
Etapa 4: Calcule a covariância GARCH multiplicando a correlação e as volatilidades estimadas
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)

Variância de um portfólio com dois ativos com peso $w_{1,t}$ no ativo 1 e $(1-w_{1,t})$ no ativo 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} $$
Há várias formas de definir o $w_{1,t}$ ótimo. Uma é escolher $w_{1,t}$ que minimize a variância do portfólio $\sigma_{t}^2$.
Condição de primeira ordem para o portfólio de variância mínima:
$$ \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 $$
Solução: 
Cálculo em R:
msftvar <- sigma(msftgarchfit) ^ 2
wmtvar <- sigma(wmtgarchfit) ^ 2
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)
msftweight <- (wmtvar - msftwmtcov) / (msftvar + wmtvar - 2 * msftwmtcov)

A estimação do beta de uma ação é o risco sistemático da ação
Definido como a covariância entre o retorno da ação e o retorno do mercado, dividida pela variância do retorno do mercado
$$ \beta_{t} = \frac{\textnormal{covariância entre o retorno da ação e o retorno do mercado}}{\textnormal{variância do retorno do mercado}} $$
Necessário para calcular o prêmio de risco. Quanto maior, mais arriscada é a ação e maior a taxa de retorno exigida.
Para ações dos EUA, o retorno de mercado é o retorno do S&P 500.
Calcule a covariância entre os retornos de MSFT e S&P 500
msftsp500cor <- as.numeric(cor(stdmsftret, stdsp500ret))
msftsp500cov <- msftsp500cor * sigma(msftgarchfit) * sigma(sp500garchfit)
Calcule a variância dos retornos do S&P 500
sp500var <- sigma(sp500garchfit) ^ 2
Calcule o beta
msftbeta <- msftsp500cov / sp500var

Modelos GARCH em R