Undvik onödig komplexitet

GARCH-modeller i R

Kris Boudt

Professor of finance and econometrics

Undvik onödig komplexitet

  • Om du vet att
    • Medelvärdesprocessen är försumbar
    • Det saknas hävstångseffekt i variansen
    • Fördelningen är symmetrisk med tjocka svansar

Är ett konstant medelvärde med standard-GARCH(1, 1) och student-t-fördelning en lämplig specifikation:

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
GARCH-modeller i R

Begränsa parameterestimaten

  • Om du vet att parametrarna
    • är lika med ett visst värde
    • eller befinner sig inom ett intervall
  • Bör du ange detta i specifikationen med metoderna
    • setfixed()
    • setbounds()
GARCH-modeller i R

Tillämpning på växelkurser

Specifikation och estimering

garchspec <- ugarchspec(mean.model = list(armaOrder = c(0, 0)),
                        variance.model = list(model = "sGARCH"),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

Estimeringsresultat

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-3.562136e-05  8.005123e-08  3.097322e-02  9.674496e-01  8.821902e+00
GARCH-modeller i R

Exempel på setfixed()

  • Om du vet att alpha1 = 0.05 och shape = 6: lägg in dessa värden i estimeringen.
  • Hur? Använd metoden setfixed() på ett ugarchspec-objekt
setfixed(garchspec) <- list(alpha1 = 0.05, shape = 6)

Resultat

garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)

coef(garchfit)
           mu         omega        alpha1         beta1         shape 
-4.142922e-05  2.061772e-07  5.000000e-02  9.489622e-01  6.000000e+00
GARCH-modeller i R

Gränser för parametrar

  • GARCH-parametrarna kan begränsas till ett intervall.
  • Ibland är intervallet av rimliga värden stort:
    • För att säkerställa positiv varians krävs att alla variansparametrar ($\omega$, $\alpha$, $\beta$, $\gamma$) är positiva.
  • Ibland är intervallet av rimliga värden mindre:
    • Troliga värden för $\alpha$ ligger mellan 0,05 och 0,2
    • Troliga värden för $\beta$ ligger mellan 0,7 och 0,95
  • Sådana gränsbegränsningar på parametrarna kan anges med metoden setbounds().
GARCH-modeller i R

Exempel på setbounds()

setbounds(garchspec) <- list(alpha1 = c(0.05, 0.2), beta1 = c(0.8, 0.95))
GARCH-modeller i R

Använd din intuition för att undvika onödig komplexitet.

Använd den information du har:

  • för att bygga enkla (och smarta) modeller
  • för att låsa parametervärden eller sätta gränser
  • för att göra GARCH-dynamiken realistisk:

    • medelvärdesåtergång i volatiliteten kring urvalets standardavvikelse
      sd(EURUSDret) # returns a value of 0.006194049
      
GARCH-modeller i R

Volatilitetskluster och medelvärdesåtergång i volatilitet

GARCH-modeller i R

Variansmålsättning

  • Matematiskt innebär detta att den obetingade variansen från GARCH-modellen är lika med urvalsvariansen $\hat \sigma^2$.
  • Hur? Sätt argumentet variance.targeting = TRUE i variance.model i ugarchspec():
garchspec <- ugarchspec(mean.model = list(armaOrder = c(0,0)),
                        variance.model = list(model = "sGARCH",
                        variance.targeting = TRUE),
                        distribution.model = "std")
garchfit <- ugarchfit(data = EURUSDret, spec = garchspec)
all.equal(uncvariance(garchfit), sd(EURUSDret) ^ 2, tol = 1e-4)
TRUE
GARCH-modeller i R

Nu kör vi en övning!

GARCH-modeller i R

Preparing Video For Download...