Evitați complexitatea inutilă

Modele GARCH în R

Kris Boudt

Professor of finance and econometrics

Evitați complexitatea inutilă

  • Dacă știți că
    • Dinamica mediei este neglijabilă
    • Nu există efect de levier în varianță
    • Distribuția este simetrică și cu cozi groase

Atunci o medie constantă, GARCH(1, 1) standard cu distribuție t Student este o specificație adecvată:

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

Restricționați estimările parametrilor

  • Dacă știți că parametrii
    • sunt egali cu o anumită valoare
    • sau se află într-un interval
  • Atunci impuneți aceasta în specificație folosind metodele
    • setfixed()
    • setbounds()
Modele GARCH în R

Aplicație pe cursuri de schimb valutar

Specificare și estimare

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

Rezultatele estimării

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

Exemplu pentru setfixed()

  • Dacă știți că alpha1 = 0.05 și shape = 6: impuneți aceste valori în estimare.
  • Cum? Utilizând metoda setfixed() pe un obiect ugarchspec
setfixed(garchspec) <- list(alpha1 = 0.05, shape = 6)

Rezultat

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
Modele GARCH în R

Limite asupra parametrilor

  • Parametrii GARCH pot fi restricționați la un interval.
  • Uneori intervalul de valori plauzibile este larg:
    • Pentru a asigura că varianța este pozitivă, impunem ca toți parametrii varianței ($\omega$, $\alpha$, $\beta$, $\gamma$) să fie pozitivi.
  • Uneori intervalul de valori plauzibile este mai mic:
    • Valorile probabile ale $\alpha$ sunt între 0,05 și 0,2
    • Valorile probabile ale $\beta$ sunt între 0,7 și 0,95
  • Astfel de restricții de tip limită asupra parametrilor pot fi impuse folosind metoda setbounds().
Modele GARCH în R

Exemplu pentru setbounds()

setbounds(garchspec) <- list(alpha1 = c(0.05, 0.2), beta1 = c(0.8, 0.95))
Modele GARCH în R

Folosiți intuiția pentru a evita complexitatea inutilă.

Folosiți informațiile disponibile:

  • pentru a construi modele simple (și inteligente)
  • pentru a fixa valori ale parametrilor sau a seta limite
  • pentru a face dinamica GARCH realistă:

    • revenirea la medie a volatilității față de deviația standard a eșantionului
      sd(EURUSDret) # returns a value of 0.006194049
      
Modele GARCH în R

Clustere de volatilitate și revenire la medie

Modele GARCH în R

Țintirea varianței

  • Matematic, aceasta înseamnă că varianța necondiționată implicată de modelele GARCH este egală cu varianța eșantionului $\hat \sigma^2$.
  • Cum? Setând argumentul variance.targeting = TRUE în variance.model al 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
Modele GARCH în R

Să impunem restricții asupra modelului GARCH

Modele GARCH în R

Preparing Video For Download...