Užívateľský manuál

Táto stránka je aktuálne v procese tvorby. Ďakujeme za trpezlivosť!

Vo výrobe

GARCH modely v R

GARCH modely (Generalized Autoregressive Conditional Heteroskedasticity) sú navrhnuté tak, aby zachytili určité charakteristiky bežne sa vyskytujúce vo finančných časových radoch:

  • tučné chvosty rozdelenia (fat tails),
  • zhlukovanie rozptylu (volatility clustering),
  • pretrvávanie volatility,
  • návrat k dlhodobému priemeru,
  • asymetrické efekty (napr. pákový efekt/leverage effect).

Potrebné knižnice v R:

library(fGarch)
library(tseries)
library(FinTS)
  

Nižšie je znázornený typický príklad zhlukovania volatility vo finančnom časovom rade:

ARCH modely v R

ARCH modely (Autoregressive Conditional Heteroskedasticity) sú postavené na predpoklade heteroskedasticity, t. j. že rozptyl (resp. štandardná odchýlka) náhodnej zložky modelu sa mení v čase.

Inak povedané, rozptyl hodnôt časového radu je závislý od jeho vlastných predchádzajúcich hodnôt. Tento typ modelu je vhodný najmä pre časové rady s premenlivou volatilitou, ako napríklad finančné trhy.

Základný tvar ARCH(q) modelu:

Kde:

  • εt = náhodná zložka s nulovou strednou hodnotou,
  • ht = podmienený rozptyl v čase t,
  • α0, α1, …, αq = parametre modelu.

Modelovanie (G)ARCH v jazyku R prebieha takmer rovnako ako modelovanie ARIMA procesov. Najprv je potrebné určiť typ a stupeň G(ARCH) procesu, nasleduje odhad parametrov modelu a diagnostika.

Určenie stupňa (G)ARCH modelu

Mnohými aplikáciami týchto modelov bolo zistené, že veľkú väčšinu existujúcich reálnych procesov je možné modelovať za pomoci procesu GARCH(1,1).

Preto i my budeme zväčša využívať GARCH modely 1. stupňa ako prvotný (častokrát i jediný) stupeň (G)ARCH k modelovaniu procesov.

Odhad parametrov (G)ARCH modelu

Základný príkaz na modelovanie (G)ARCH efektov v jazyku R je garchFit().

Parametre, ktoré do nej vstupujú, sú: arma(1,2,1), garch(1,1) a samotné dáta.

Výpočet typu a stupňa AR(i)MA je uvedený v predchádzajúcej sekcii. Do modelu ho zahrnieme preto, že chceme vytvárať prognózy celého procesu, a nie iba jeho reziduí.

Príklad: Odhad (G)ARCH modelu

Nasleduje načítanie dát:

Dáta použité v tomto príklade nájdete tu: Odkazy na použité a reálne dáta

Potom stačí zavolať samotnú funkciu garchFit():

model = garchFit(~arma(8,1,8) + garch(1,1), data = data)
  

Výsledok (ukázaná len časť výpisu):

Series Initialization:
ARMA Model: arma
Formula Mean: ~ arma(1, 2, 1)
GARCH Model: garch
Formula Variance: ~ garch(1, 1)
ARMA Order: 1 0
Max ARMA Order: 1
GARCH Order: 1 1
Max GARCH Order: 1
Maximum Order: 1
Conditional Dist: norm
h.start: 2
llh.start: 1
Length of Series: 100
Recursion Init: mci
Series Scale: 4.132703
  

Ak chceme podrobnejší výpis, použijeme:

summary(model)
  

Verifikácia odhadnutého (G)ARCH modelu

Odhadnutý model je potrebné verifikovať pomocou rezíduí. Tie musia byť štandardizované, čo dosiahneme nasledovným príkazom:

GarchRezidua = model@residuals / model@sigma.t
  

Po výpočte štandardizovaných rezíduí môžeme overiť kvalitu modelu pomocou:

  • ArchTest – test na prítomnosť heteroskedasticity,
  • Ljung-Box štatistiky – test na autokorelácie rezíduí,
  • BDS testu – test na nezávislosť rezíduí,
  • Grafickej diagnostiky – pomocou Q-Q grafov (kvantil-kvantil).

Výsledky týchto testov nám pomôžu rozhodnúť, či model dostatočne popisuje časový rad alebo je potrebné model upraviť.

ArchTest pre GARCH modely

ArchTest nájdete podrobne popísaný v sekcii ARIMA modely. V prípade GARCH modelov testujeme rezíduá vypočítané z GARCH procesu.

Testujeme nulovú hypotézu, že v rezíduách sa nenachádza ďalší ARCH efekt. Ak je hodnota p-value väčšia ako zvolená hladina významnosti, túto hypotézu prijímame. Najčastejšie sa odporúča testovať pre lags = 1, 5, 12.

ArchTest(GarchRezidua, lags = 1)
  

Výsledok:

ARCH LM-test; Null hypothesis: no ARCH effects

data: GarchRezidua
Chi-squared = 0.0582, df = 1, p-value = 0.8094
  

Vzhľadom na vysokú hodnotu p-value = 0.8094 nemáme dôkaz o prítomnosti ďalšieho ARCH efektu v rezíduách — rezíduá sú v poriadku.

Diagnostika pomocou Ljung-Box štatistiky

Výstup zo summary(model) obsahuje niekoľko štatistických testov štandardizovaných reziduí. Medzi nimi sa nachádza aj Ljung-Box štatistika, ktorá testuje autokoreláciu v rezíduách.

Ak je hodnota p-value menšia ako zvolená hladina významnosti (napr. 0.05), môžeme zamietnuť hypotézu o bielom šume a predpokladáme, že rezíduá obsahujú ešte závislosť.

Ukážka výstupu:

Standardised Residuals Tests:
Statistic                      p-Value
Jarque-Bera Test R Chi^2      6.316023     0.04251018
Shapiro-Wilk Test R W         0.9645913    0.00866055
Ljung-Box Test R Q(10)        37.45633     4.717499e-05
Ljung-Box Test R Q(15)        41.64911     0.0002544548
Ljung-Box Test R Q(20)        47.70409     0.0004679968
Ljung-Box Test R^2 Q(10)      6.301758     0.7893057
Ljung-Box Test R^2 Q(15)      10.42755     0.7920196
Ljung-Box Test R^2 Q(20)      11.74053     0.9247172
LM Arch Test R TR^2           10.19812     0.5985843
  

Z výsledkov môžeme vyvodiť, že napr. test Ljung-Box R Q(10) má veľmi nízke p-value = 4.7e-05, teda existuje významná autokorelovaná štruktúra. Naopak Ljung-Box R² testy naznačujú, že pre štvorce reziduí autokorelácia už nie je prítomná, čo naznačuje, že GARCH model dobre zachytil volatilitu.

Diagnostika rezíduí pomocou BDS testu

Ďalším spôsobom overenia kvality GARCH modelu je BDS test, ktorý zisťuje prítomnosť nelineárnych závislostí v rezíduách. Ak je p-value väčšia ako hladina významnosti, rezíduá sú náhodné (biely šum) a GARCH efekt je správne zachytený.

Príkaz v R:

bds.test(GarchRezidua)
  

Ukážka výstupu:

BDS Test

data: GarchRezidua

Embedding dimension = 2 3

Epsilon for close points = 0.5025 1.0050 1.5075 2.0100

Standard Normal =
           [ 0.5025 ] [ 1.005 ] [ 1.5075 ] [ 2.01 ]
[ 2 ]      -0.6156     0.4706     0.4590     0.6581
[ 3 ]      -0.2098     1.5286     1.3965     1.5571

p-value =
           [ 0.5025 ] [ 1.005 ] [ 1.5075 ] [ 2.01 ]
[ 2 ]       0.5382     0.6379     0.6463     0.5105
[ 3 ]       0.8338     0.1264     0.1626     0.1194
  

Ako vidíme, väčšina p-hodnôt je väčšia než 0.05, čo znamená, že BDS test nepotvrdil prítomnosť ďalšej štruktúry a rezíduá možno považovať za náhodné. Model tak adekvátne zachytáva dynamiku série.

Grafická diagnostika pomocou teoretických kvantilov

Táto diagnostika umožňuje vizuálne posúdiť, či majú rezíduá GARCH modelu normálne rozdelenie. Porovnáva sa rozdelenie štandardizovaných rezíduí s teoretickým normálnym rozdelením pomocou tzv. QQ-plotu.

Príkaz v R:

qqnorm(GarchRezidua)
abline(0, 1)
  

V ideálnom prípade budú body na grafe kopírovať priamku, čím sa potvrdí normalita rezíduí. Odchýlky od priamky môžu naznačovať nevyhovujúce rozdelenie, čo by si vyžadovalo transformáciu dát alebo výber iného modelu.

Výsledný zápis (G)ARCH modelu

Po odhadnutí parametrov môžeme model zapísať vo forme rovnice. Pre (G)ARCH modely sú kľúčové parametre: omega (konštanta), alpha1 (váha predchádzajúceho šoku) a beta1 (váha predchádzajúcej podmienenej volatility).

Príklad odhadnutých parametrov:

omega   = 0.03447
alpha1  = 1.00000
beta1   = 0.35933
  

Na základe toho zapíšeme výsledný model GARCH(1,1) takto:

σ²t = 0.03447 + 1.00000·ε²t−1 + 0.35933·σ²t−1

Tento zápis opisuje spôsob, akým sa vypočítava aktuálna podmienená variancia na základe predchádzajúcich rezíduí a variancie. Prítomnosť vysokého alpha1 naznačuje silnú reakciu na nové informácie.

Zdroje:

  • Bábel, J.: DIPLOMOVÁ PRÁCA: Moderné prognostické metódy v modelovaní vysokofrekvenčných dát, 2008
  • Falát, L., Laštík, T., Tkáč, P.: FRI MANUÁL v1.0
Návrat hore