Modèles GARCH en R
Kris Boudt
Professor of finance and econometrics
À partir du modèle GARCH estimé, on a :

Mise en œuvre
e <- residuals(tgarchfit)
mean(e ^ 2)
Le modèle GARCH donne :

Mise en œuvre
e <- residuals(tgarchfit)
d <- e ^ 2 - sigma(tgarchfit) ^ 2
mean(d ^ 2)
tgarchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
variance.model = list(model = "sGARCH", variance.targeting = TRUE),
distribution.model = "std")
tgarchfit <- ugarchfit(data = EURUSDret, spec = tgarchspec)
# Calculer l'erreur quadratique moyenne de prévision pour la moyenne
e <- residuals(tgarchfit) ^ 2
mean(e ^ 2) # 3.836205e-05
# Calculer l'erreur quadratique moyenne de prévision pour la variance
d <- e ^ 2 - sigma(tgarchfit) ^ 2
mean(d ^ 2) # 5.662366e-09
likelihood(tgarchfit) # returns 18528.58
Analyser en comparant avec d'autres modèles :
# Modèle complexe avec plusieurs paramètres
flexgarchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "gjrGARCH"),
distribution.model = "sstd")
flexgarchfit <- ugarchfit(data = EURUSDret, spec = flexgarchspec)
likelihood(flexgarchfit) # returns 18530.49
Attention : nous utilisons une évaluation en échantillon où l'échantillon d'estimation et l'échantillon d'évaluation coïncident.
Risque de surajustement :
Le surajustement consiste à choisir des modèles trop complexes qui s'ajustent bien aux rendements de l'échantillon d'estimation utilisé, mais pas aux rendements futurs hors échantillon.
critères d'information = - vraisemblance + pénalité(nombre de paramètres)
Règle pratique pour choisir :
Choisir le modèle au critère d'information le plus faible.
La méthode infocriteria() affiche les critères d'information pour diverses pénalités
infocriteria(tgarchfit)
out
Akaike -7.468081
Bayes -7.462833
Shibata -7.468083
Hannan-Quinn -7.466241
`
L'interprétation exige une comparaison avec les critères d'autres modèles.
tgarchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
variance.model = list(model = "sGARCH", variance.targeting = TRUE),
distribution.model = "std")
tgarchfit <- ugarchfit(data = EURUSDret, spec = tgarchspec)
length(coef(tgarchfit)) # only 5 parameters
likelihood(tgarchfit) # equals 18528.58
flexgarchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
variance.model = list(model = "gjrGARCH"), distribution.model = "sstd")
flexgarchfit <- ugarchfit(data = EURUSDret, spec = flexgarchspec)
length(coef(flexgarchfit)) # we now have 8 parameters
likelihood(flexgarchfit) # 18530.49: likelihood increased
Une vraisemblance plus élevée est préférable. Un critère d'information plus faible est préférable.
infocriteria(tgarchfit) # Modèle simple
Akaike -7.468435
Bayes -7.464499
infocriteria(flexgarchfit) # Modèle complexe
Akaike -7.467239
Bayes -7.456742
Le modèle simple a le critère d'information le plus faible et doit être privilégié ici.
tgarchfit <- ugarchfit(data = msftret, spec = tgarchspec)
flexgarchfit <- ugarchfit(data = msftret, spec = flexgarchspec)
infocriteria(tgarchfit)
Akaike -5.481895
Bayes -5.477833
infocriteria(flexgarchfit)
Akaike -5.489087
Bayes -5.478255
Le modèle complexe a le critère d'information le plus faible et doit être privilégié ici.
Modèles GARCH en R