1 Odhadovanie a testovanie GARCH modelov

Na prednáške sme videli príklad takejto situácie:

Uvidíme teraz na iných dátach, že toto nie je neobvyklá situácia.

Samozrejme, nie to ani univerzálna situácia a pri iných dátach môže byť vhodnejší ARCH model bez GARCH členov, alebo pri vyhovujúcom modeli zostanú nejaké parametre nesignifikantné. \(\rightarrow\) na ďalšiu akciu sa pozriete v domácej úlohe.

1.1 Dáta

Budeme modelovať denné výnosy YHOO.

library(quantmod)
library(astsa)

getSymbols("YHOO", from="2009-01-01", to="2011-12-31", src="google")
## [1] "YHOO"
vynosy <- diff(log(YHOO$YHOO.Close))[-1]
chartSeries(vynosy, theme = "white")

1.2 Modelovanie výnosov pomocou bieleho šumu

Nasvedčuje tomu ACF:

acf2(vynosy)

##         ACF  PACF
##  [1,] -0.01 -0.01
##  [2,]  0.01  0.01
##  [3,] -0.04 -0.04
##  [4,]  0.00  0.00
##  [5,] -0.07 -0.07
##  [6,] -0.02 -0.03
##  [7,] -0.01 -0.01
##  [8,] -0.02 -0.03
##  [9,] -0.09 -0.09
## [10,] -0.06 -0.07
## [11,] -0.05 -0.06
## [12,]  0.05  0.03
## [13,]  0.00 -0.01
## [14,]  0.02  0.00
## [15,] -0.02 -0.03
## [16,] -0.04 -0.06
## [17,]  0.04  0.04
## [18,]  0.05  0.04
## [19,]  0.04  0.03
## [20,] -0.01 -0.02
## [21,]  0.04  0.04
## [22,] -0.07 -0.06
## [23,]  0.00  0.01
## [24,]  0.01  0.02
## [25,]  0.03  0.02
## [26,] -0.02 -0.01
## [27,] -0.01  0.00
## [28,] -0.08 -0.07
## [29,]  0.04  0.05
## [30,]  0.04  0.05
## [31,]  0.02  0.01
## [32,] -0.09 -0.09
## [33,] -0.01 -0.03
## [34,] -0.04 -0.02
## [35,] -0.07 -0.07
## [36,] -0.02 -0.03
## [37,]  0.06  0.03
## [38,]  0.04  0.02

Ak teraz odhadneme sarima(vynosy, 0,0,0), samozrejme rezuíduá budú v poriadku:

model1 <- sarima(vynosy,0,0,0, details=FALSE)

V poriadku nebudú druhé mocniny rezíduí - tie by mali byť tiež nekorelované:

rez0 <- model1$fit$residuals
acf(rez0^2)

1.3 Modelovanie výnosov ARCH a GARCH procesmi

1.3.1 ARCH modely: opakovanie z prednášky

  • Čo znamená, ak \(u\) nemodelujeme ako biely šum, ale ako ARCH(q) proces? Ako vtedy modelujeme jeho disperziu?

  • Aké ohraničenia na parametre musia byť splnené, aby bol ARCH(q) proces stacionárny?

1.3.2 ARCH modely: odhadovanie a testovanie v R-ku

Funkcia v R-ku: garchFit z knižnice fGarch

library(fGarch)

# pouzitie garchFit: modelujeme vynosy ako konst. + u, u ~ ARCH(q)
modelGarch <- garchFit(~garch(q,0), data=vynosy, trace=FALSE)

Odhadneme ARCH(1) model:

model10 <- garchFit(~garch(1,0), data=vynosy, trace=FALSE)
model10
## 
## Title:
##  GARCH Modelling 
## 
## Call:
##  garchFit(formula = ~garch(1, 0), data = vynosy, trace = FALSE) 
## 
## Mean and Variance Equation:
##  data ~ garch(1, 0)
## <environment: 0x000000003416f718>
##  [data = vynosy]
## 
## Conditional Distribution:
##  norm 
## 
## Coefficient(s):
##          mu        omega       alpha1  
## -3.4668e-05   4.8946e-04   1.2097e-01  
## 
## Std. Errors:
##  based on Hessian 
## 
## Error Analysis:
##          Estimate  Std. Error  t value Pr(>|t|)    
## mu     -3.467e-05   8.375e-04   -0.041  0.96698    
## omega   4.895e-04   3.103e-05   15.773  < 2e-16 ***
## alpha1  1.210e-01   4.584e-02    2.639  0.00831 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Log Likelihood:
##  1763.064    normalized:  2.338282 
## 
## Description:
##  Thu Oct 05 14:48:48 2017 by user: admin

Potrebujeme skontrolovať, či sú štandardizované rezíduá bielym šumom:

stand.rez <- model10@residuals/model10@sigma.t

Úlohy:

  • Zobrazte ACF pre štandardizované rezíduá a pre ich druhé mocniny.

  • Opakovanie z prednášky: Zobrazíme summary odhadnutého modelu:

summary(model10)
## 
## Title:
##  GARCH Modelling 
## 
## Call:
##  garchFit(formula = ~garch(1, 0), data = vynosy, trace = FALSE) 
## 
## Mean and Variance Equation:
##  data ~ garch(1, 0)
## <environment: 0x000000003416f718>
##  [data = vynosy]
## 
## Conditional Distribution:
##  norm 
## 
## Coefficient(s):
##          mu        omega       alpha1  
## -3.4668e-05   4.8946e-04   1.2097e-01  
## 
## Std. Errors:
##  based on Hessian 
## 
## Error Analysis:
##          Estimate  Std. Error  t value Pr(>|t|)    
## mu     -3.467e-05   8.375e-04   -0.041  0.96698    
## omega   4.895e-04   3.103e-05   15.773  < 2e-16 ***
## alpha1  1.210e-01   4.584e-02    2.639  0.00831 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Log Likelihood:
##  1763.064    normalized:  2.338282 
## 
## Description:
##  Thu Oct 05 14:48:48 2017 by user: admin 
## 
## 
## Standardised Residuals Tests:
##                                 Statistic p-Value     
##  Jarque-Bera Test   R    Chi^2  276.8228  0           
##  Shapiro-Wilk Test  R    W      0.9652303 2.124496e-12
##  Ljung-Box Test     R    Q(10)  14.33403  0.1582932   
##  Ljung-Box Test     R    Q(15)  18.71285  0.2270421   
##  Ljung-Box Test     R    Q(20)  24.78596  0.2097428   
##  Ljung-Box Test     R^2  Q(10)  19.74157  0.03179393  
##  Ljung-Box Test     R^2  Q(15)  35.01936  0.002443475 
##  Ljung-Box Test     R^2  Q(20)  44.95618  0.001118666 
##  LM Arch Test       R    TR^2   18.1077   0.1124594   
## 
## Information Criterion Statistics:
##       AIC       BIC       SIC      HQIC 
## -4.668606 -4.650202 -4.668637 -4.661516

Vysvetlite, výsledky akých testov sa tam uvádzajú.

  • Prečo toto nie je dobrý model pre naše výnosy?

  • Zopakujte tento postup pre ARCH modely vyššieho rádu a nájdite taký, pri ktorom sú už rezíduá aj ich druhé mocniny vyhovujúce.

1.3.3 GARCH modely: opakovanie z prednášky

  • Čo znamená, ak \(u\) nemodelujeme ako biely šum, ale ako GARCH(p,q) proces? Ako vtedy modelujeme jeho disperziu?

  • Aké ohraničenia na parametre musia byť splnené, aby bol GARCH(p,q) proces stacionárny?

1.3.4 GARCH modely: odhadovanie a testovanie v R-ku

Funkcia v R-ku: znovu garchFit z knižnice fGarch

library(fGarch)

# pouzitie garchFit: modelujeme vynosy ako konst. + u, u ~ GARCH(p,q)
modelpq <- garchFit(~garch(p,q), data=vynosy, trace=FALSE)

Úloha:

  • Odhadnite GARCH(1,1) model a ukážte, že úspešne prejde testovaním rezíduí a ich druhých mocnín.

  • Porovnajte informačné kritériá (Akaike, Schwartz) pre GARCH(1,1) model a pre vyhovujúci (z hľadiska rezíduí) ARCH model. Ktorý je lepší?

  • Zobrazte priebeh odhadnutej štandardnej odchýlky \(\sigma_t\).

1.4 Konštrukcia predikcií v GARCH modeloch

Budeme pokračovať v modelovaní výnosov YHOO, do premennej model11 vložíme GARCH(1,1) model pre výnosy.

Úlohy:

  • Pomocou funkcie predict zobrazte predikcie na nasledujúcich 20 dní.
predikcie <- predict(...)

  • Vypíšte predikovanú hodnotu štandardnej odchýlky na nasledujúci deň.

2 Value at Risk

Opakovanie z prednášky: Čo je to Value at Risk?

Zrealizujeme výpočet zo slajdov z prednášky:

3 Nepovinné dodatky

3.1 Stratégia obchodnovania pomocou GARCH modelov