Passar GARCH-prediktionerna väl med de observerade avkastningarna?

GARCH-modeller i R

Kris Boudt

Professor of finance and econometrics

Utvärderingskriterium

  • Beror på vad du vill utvärdera
    • det predikterade medelvärdet
    • den predikterade variansen
    • den predikterade fördelningen av avkastningarna
GARCH-modeller i R

1) Anpassning för medelvärdesprediktion

Baserat på den skattade GARCH-modellen gäller:

Implementering

e <- residuals(tgarchfit) 
mean(e ^ 2)
GARCH-modeller i R

2) Anpassning för variansprediktion

GARCH-modellen ger:

Implementering

e <- residuals(tgarchfit)
d <- e ^ 2 - sigma(tgarchfit) ^ 2 
mean(d ^ 2)
GARCH-modeller i R

Exempel för EUR/USD-avkastningar

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)
# Compute mean squared prediction error for the mean
e <- residuals(tgarchfit) ^ 2
mean(e ^ 2) # 3.836205e-05
# Compute mean squared prediction error for the variance
d <- e ^ 2 - sigma(tgarchfit) ^ 2
mean(d ^ 2) # 5.662366e-09
GARCH-modeller i R

3) Anpassning för fördelningen

  • GARCH-modellen ger en predikterad täthetsfunktion för alla avkastningar i urvalet
    • Ju högre täthet, desto sannolikare är avkastningen under den skattade GARCH-modellen
    • Likelihooden för urvalet baseras på produkten av alla dessa tätheter. Den mäter hur sannolikt det är att de observerade avkastningarna härstammar från den skattade GARCH-modellen
    • Ju högre likelihood, desto bättre passar modellen dina data
GARCH-modeller i R

Exempel för EUR/USD-avkastningar

likelihood(tgarchfit) # returns 18528.58

Analysera genom att jämföra med andra modeller:

# Complex model with many parameters
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
GARCH-modeller i R

Risk för överanpassning

Observera: Vi använder en urvalsbaserad utvärdering där skattningsurvalet och utvärderingsurvalet sammanfaller.

Risk för överanpassning:

Överanpassning innebär att man väljer alltför komplexa modeller som passar avkastningarna i skattningsurvalet väl, men inte de framtida avkastningar som ligger utanför urvalet.

GARCH-modeller i R

Lösning: Balansera modellanpassning med en straffterm för komplexitet

  • En GARCH-modell är sparsam när den har:
    • hög likelihood
    • och relativt få parametrar
GARCH-modeller i R

Informationskriterier

  • Sparsamhet mäts med informationskriterier.

informationskriterium = - likelihood + straffterm(antal parametrar)

  • Lägre värde är bättre.

Tumregel:
Välj modellen med lägst informationskriterium.

GARCH-modeller i R

Resultat för informationskriterier

Metoden infocriteria() skriver ut informationskriterierna för olika strafftermsvikter

infocriteria(tgarchfit)

out Akaike -7.468081 Bayes -7.462833 Shibata -7.468083 Hannan-Quinn -7.466241 `

Tolkning kräver jämförelse med informationskriterierna för andra modeller.

GARCH-modeller i R

Illustration med EUR/USD-avkastningar

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
GARCH-modeller i R

Vilken modell är mest sparsam för EUR/USD-avkastningar?

Högre likelihood är bättre. Lägre informationskriterium är bättre.

infocriteria(tgarchfit) # Simple model
Akaike       -7.468435
Bayes        -7.464499
infocriteria(flexgarchfit) # Complex model
Akaike       -7.467239
Bayes        -7.456742

Den enkla modellen har lägst informationskriterium och bör därför väljas här.

GARCH-modeller i R

Resultat varierar: fallet med MSFT-avkastningar

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

Den komplexa modellen har lägst informationskriterium och bör därför väljas här.

GARCH-modeller i R

KISS: Keep it Sophisticatedly Simple

GARCH-modeller i R

Preparing Video For Download...