Modèles GARCH en R
Kris Boudt
Professor of finance and econometrics
Si deux rendements d'actifs $R_{1,t}$ et $R_{2,t}$ ont une corrélation $\rho$ et des volatilités variables dans le temps $\sigma_{1,t}$ et $\sigma_{2,t}$, leur covariance est :
$$ \sigma_{12, t} = \rho \sigma_{1, t} \sigma_{2, t} $$
Étape 1 : Utilisez ugarchfit() pour estimer le modèle GARCH pour chaque série de rendements.
msftgarchfit <- ugarchfit(data = msftret, spec = garchspec)
wmtgarchfit <- ugarchfit(data = wmtret, spec = garchspec)
Étape 2 : Utilisez residuals() pour calculer les rendements standardisés.
stdmsftret <- residuals(msftgarchfit, standardize = TRUE)
stdwmtret <- residuals(wmtgarchfit, standardize = TRUE)
Étape 3 : Utilisez cor() pour estimer $\rho$ comme la corrélation empirique des rendements standardisés.
msftwmtcor <- as.numeric(cor(stdmsftret, stdwmtret)) # equals 0.298795
Étape 4 : Calculez la covariance GARCH en multipliant la corrélation et les volatilités estimées
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)

Variance d'un portefeuille de deux actifs avec une pondération $w_{1,t}$ dans l'actif 1 et $(1-w_{1,t})$ dans l'actif 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} $$
Plusieurs façons de définir le $w_{1,t}$ optimal. Une approche : choisir $w_{1,t}$ qui minimise la variance du portefeuille $\sigma_{t}^2$.
Condition du premier ordre pour trouver le portefeuille à variance minimale :
$$ \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 $$
Solution : 
Calcul en R :
msftvar <- sigma(msftgarchfit) ^ 2
wmtvar <- sigma(wmtgarchfit) ^ 2
msftwmtcov <- msftwmtcor * sigma(msftgarchfit) * sigma(wmtgarchfit)
msftweight <- (wmtvar - msftwmtcov) / (msftvar + wmtvar - 2 * msftwmtcov)

L'estimation du bêta d'une action est son risque systématique
Défini comme la covariance entre le rendement de l'action et celui du marché, divisée par la variance des rendements du marché
$$ \beta_{t} = \frac{\textnormal{covariance entre le rendement de l'action et celui du marché}}{\textnormal{variance du rendement du marché}} $$
Nécessaire pour calculer la prime de risque. Plus il est élevé, plus l'action est risquée et plus le rendement exigé est élevé.
Pour les actions américaines, le rendement du marché est celui du S&P 500.
Calculez la covariance entre les rendements de MSFT et du S&P 500
msftsp500cor <- as.numeric(cor(stdmsftret, stdsp500ret))
msftsp500cov <- msftsp500cor * sigma(msftgarchfit) * sigma(sp500garchfit)
Calculez la variance des rendements du S&P 500
sp500var <- sigma(sp500garchfit) ^ 2
Calculez le bêta
msftbeta <- msftsp500cov / sp500var

Modèles GARCH en R