Streszczenie

Celem niniejszego raportu jest zbudowanie i analiza równowazonego portfela inwestycyjnego. Autorzy w pracy do zbudowania portfela, uzyli niestandardowego podejscia, a mianowicie macierzy BCG, która zazwyczaj sluzy do analizy portfela produktów. Spowodowalo to, ze portfel sklada sie z akcji spólek doskonale wszystkim znanych, tj. Orange, czy Pekao; ale takze malych i innowacyjnych, jak CD_Project, czy Braster. W analizie powstalego w ten sposób portfela inwestycyjnego przeprowadzono oszacowania funkcji warunkowej wariancji za pomoca modeli GARCH (uzyto standardowego modelu GARCH, jak tez GJGARCH) oraz wartosci narazonej na ryzyko w okresach in-sample oraz out-of-sample. Ostatnim elementem badania byla analiza wrazliwosci dla najlepiej dopasowanego modelu.

Metoda Macierzy Boston-Consulting-Group

W niniejszym projekcie wykorzystano stosunkowo nietypowe podejscie do zagadnienia budowania portfela inwestycyjnego, poniewaz postanowiono posluzyc sie macierza Boston Consulting Group. Macierz BCG jest zazwyczaj uzywana do analizy portfela produktów, jednak po pewnych modyfikacjach mozna poczynic próby wykorzystania jej w dywersyfikacji portfela inwestycyjnego. Istota macierzy BCG polega na podziale produktów (zas w niniejszym projekcie wybranych instrumentów) na cztery grupy: dojne krowy, gwiazdy, znaki zapytania i psy. W przyblizeniu udzial poszczególnych grup w calym portfelu powinien wynosic: 40-50% dla dojnych krów, 30% dla gwiazd, 10%-20% dla znaków zapytania oraz maksymalnie do 10% dla psów. Poszczególne kategorie w odniesieniu do spólek i ich notowan powinny charakteryzowac sie nastepujacymi charakterystykami:

  1. Dojne krowy – odznaczaja sie niskim tempem wzrostu, jednak bardzo duzym udzialem w rynku. Czesto sluza one do pozyskiwania srodków finansowych w celu poczynienia inwestycji w bardziej ryzykowne aktywa. Czesc ze spólek charakteryzuje sie wyplata dywidendy.

  2. Gwiazdy – charakteryzuja sie bardzo duzymi perspektywami rozwoju, ale takze stosunkowo wysokimi nakladami inwestycyjnymi, przede wszystkim na rozwój. Inwestorzy nie moga spodziewac sie raczej wyplaty dywidend, jednak moga oczekiwac bardzo wysokich zysków w przyszlosci poprzez zwiekszenie wartosci spólki.

  3. Znaki zapytania – spólki o malym udziale w sektorze, jednak bardzo perspektywiczne; dzialajace na rynku charakteryzujacym sie duzym wzrostem.

  4. Psy – spólki cechujace sie powolnym wzrostem i niskim tempem rozwoju. Zazwyczaj wystepuja w portfelu z powodu blednie przeprowadzonej wczesniejszej analizy i identyfikacji spólek.

Wybrane spólki

Aby omówic dobór instrumentów, którego dokonalismy, wpierw musielismy zamportowac wszelkie niezbedne dla nas pakiety. W tym wypadku byly to:

library("fBasics") 
library("tseries")
library("car") 
library("FinTS")
library("fGarch") 
library("rugarch") 

Do naszego modelu wybralismy 6 aktywów. Byl to kurs zlota wyrazony w PLN oraz notowania 5 spólek, dobranych zgodnie z zasada z poprzedniego rozdzialu. Byly to kursy akcji CDA Project S.A., Braster, 11bit Studio, Orange S.A., Pekao S.A.. Dla wymienionych aktywów wzielismy pod uwage jedynie ceny zamkniecia, aby na ich podstawie pózniej wyznaczyc logarytmiczne stopu zwrotów. Uzylismy ponizszej procedury, aby pobrac odpowiednie dane dla spólki Orange S.A, a takze pozostalych aktywów,

url_pekao <- "http://stooq.com/q/d/l/?s=peo""
 pekao <- read.csv(url_pekao,header = TRUE,
      sep = ",", dec = ".", stringsAsFactors = F)

a takze od razu ograniczyc je do potrzebnych nam wartosci, tworzac przy okazji szereg stopy zwrotu dla kazdego z aktywów.

orange$Date <- as.Date(orange$Date)                       
orange <- orange[, c("Date", "Close")]                    
colnames(orange) <- c("Data", "orange")                     
orange$rorange <- diff.xts(log(orange$orange))

Przedzial czasowy uwzgledniony przez nas to okres 18-stu miesiecy, od 1 stycznia 2016 roku do 30 czerwca 2017 roku. Wybór takiego przedzialu czasu byl podyktowany wczesniejsza analiza sytuacji finansowej przede wszystkim gwiazd i znaków zapytania, które w znacznej mierze dopiero w latach 2016 - 2017 zaczynaly wchodzic w faze wzrostu; a wiec mogly byc utozsamiane z wyzej wymienionymi grupami. Z drugiej jednak strony inwestycje w zloto analizowane w aspekcie dojnej krowy powinny charakteryzowac sie stosunkowo dlugim horyzontem czasowym, co spowodowalo, iz analizowane dane nie powinny pochodzic z okresu krótszego niz rok.

s_date <- "2016-01-01"
f_date <- "2017-06-30"

Nastepne ograniczylismy kazdy z tych szeregów, do wyzej wyznaczonych dat, tak aby kazdy cechowal sie ta sama iloscia obserwacji.

orange <- orange[orange$Date <= as.Date(f_date), ] 
orange <- orange[orange$Date > as.Date(s_date), ]

Taki dobór przedzialu czasowego pozwolil nam na skuteczne ujecie w zgodzie z teoretyczna zasada BCG, róznego rodzaju spólek/aktywów, które w naszym portfelu pelnily konkretne role. Sposród szczesciu aktywów, trzy z nich pelnily role “Dojnych Krów”, dwie wybralismy jako “Supergwiazdy”, jedna zas stanowila “Znak Zapytania”. Podzial, którego dokonalismy prezentuje sie nastepujaco:

  1. jako dojne krowy: akcje KGHM, akcje Orange oraz inwestycje w zloto Za dojne krowy moga byc uznawane KGHM oraz Orange, które charakteryzuja sie jednymi z najwyzszych wyplacanych dywidend oraz zloto, które jako inwestycja dlugoterminowa jest czasem okreslana wrecz jako „bezpieczna przystan”, szczególnie w czasach spadków notowan czy kryzysów.

  2. jako gwiazdy: akcje 11 bit studio SA oraz akcje CD_Project 11 bit studio SA jest deweloperem gier wideo i od wydania This War of Mine jedna z gwiazd GPW. CD Project takze zajmuje sie grami – dziala w rozwijajacej sie obecnie dynamicznie branzy elektronicznej rozrywki – gier video (studio nalezace do spólki znane jest jako twórca gry Wiedzmin). Powoduje to, ze obie spólki moga byc analizowane w niniejszym projekcie jako gwiazdy.

  3. jako znaki zapytania: akcje: Braster Spólka zajmuje sie badaniami dotyczacymi zastosowania cieklych krysztalów w diagnostyce raka, a takze próbami komercjalizacji stworzonego przez nia urzadzenia sluzacego do domowego badania piersi.

Sumarycznie dojne krowy stanowia 50% portfela, gwiazdy 33%, zas znaki zapytania 17%.

Orange 4

PEKAO 5

ZLOTO 6

CDA PROJECT 3

11BIT STUDIO 2

BRASTER7

Budowa Portfela

Zgodnie z tym co wczesniej opisalisy nasz model skladal sie bedzie z 6 wskazanych wczesniej aktywów gieldowych uwzgledniajacych ceny zamkniecia, z których otrzymamy logarytmiczne stopu zwrotu dla kazdego z tych insrumentów. Aby otrzymac zrównowazony portfel polaczylismy wpierw wybrane przez nas dane do wspólnej tablicy dodajac do niej od razu numer obserwacji.

mer1<-merge(bit,bra, by="Data")
mer2<-merge(mer1,cda, by="Data")
mer3<-merge(mer2,orange, by="Data")
mer4<-merge(mer3,pekao, by="Data") 
tab<-merge(mer4,zloto, by="Data")

tab$obs<-1:length(tab$bit)

Na jej podstawie zbudowalismy w kolejnym kroku portfel, w którym kazde z aktywów liczone jest taka z sama waga, tworzac portfel zrównowazony. Zastowalismy nastepujaca formule:

tab$r<-((tab$rbit+tab$rbra+tab$rpekao+tab$rorange+tab$rzloto+tab$rcda)/6)

Wyorzystujac funkcje:

basicStats(tab$r)

mozemy uzyskac podstawowe dane opisowe o tak zbudowanym portfelu. Minalna wartosc stopy zwrotu dla naszych danych wyniosla -0.0297, zas najwieksza wartoscia bylo 0.53. Srednia tego rozkladu wyniosla 0.001, a mediana 0.000597. Obie te wartosci choc niewielkie, sa wieksze od 0. Kurtoza równa sie 1.34, co odbiega od typowej wartosci 3 dla rozkladu normalnego.

Ponizej prezentujemy wykres dziennych stóp zwrotu z portfela. 8

W celu zbadania normalnosci rozkladu wygenerowalismy takze histogram naszych stóp z nalozona na niego gestoscia rozkladu normalnego. 9

Korzystajac nastepnie ze statystyki testowej Jarque-Bery, mozemy jednoznacznie odrzucic hipoteze o normalnosci rozkladu stóp zwrotu.

jarque.bera.test(na.omit(tab$r))

    Jarque Bera Test

data:  na.omit(tab$r)
X-squared = 45.408, df = 2, p-value = 1.38e-10

Nastepnie wykonalismy testy funkcyjne na badanie autokorelacji w portfelu ze wzgledu ma istotne opóznienia. Jak pokazane jest ponizej, w modelu nie wystepuja istotne opóznienia,co potwierdza takze test Durbina-Watsona. 10

acf(tab$r, lag.max = 18, na.action = na.pass,
    ylim = c(-0.15, 0.15), 
    col = "blue3", lwd = 6,
    main = "ACF st?p zwrotu z portfolio")

Wykres ACF dla kwadratów zwrotów wskazuje na wystepowanie istotnego drugiego opóznienia. 11

acf(tab$r^2, lag.max = 18, na.action = na.pass,
    ylim = c(-0.15, 0.15), 
    col = "blue3", lwd = 6,
    main = "ACF kwadrat?w st?p zwrotu z portfolio")

Z wykorzystaniem statystyki testowej Durbina-Watsona nie mozemy stwierdzic wystepowania istotnych opóznien dla poziomu istotnosci 5% dla opóznien w modelu.

durbinWatsonTest(lm(formula = tab$r ~ 1),max.lag = 5)
 lag Autocorrelation D-W Statistic p-value
   1      0.03438814      1.927655   0.460
   2      0.04108488      1.892988   0.296
   3     -0.03530054      2.041797   0.662
   4     -0.09238377      2.153990   0.090
   5     -0.07435487      2.105132   0.212
 Alternative hypothesis: rho[lag] != 0

Ten sam test dla kwadratów reszt wychodzi juz jednak korzystniej:

durbinWatsonTest(lm(formula = tab$r^2 ~ 1),max.lag = 5)
 lag Autocorrelation D-W Statistic p-value
   1     0.006147089      1.987403   0.798
   2     0.131001267      1.706515   0.020
   3    -0.028735301      2.025186   0.844
   4     0.014025149      1.938763   0.542
   5    -0.050213318      2.057274   0.496
 Alternative hypothesis: rho[lag] != 0

Zauwazamy, zatem istotnosc drugiego opóznienia dla kwadratów reszt, co oznacza, ze mozemy odrzucic H0 o braku autokorelacji dla pierwszych 5 opóznien. Co potwierdza tylko wnioski, które moglismy wyciagnac ze wczesniejszych korelogramów. Nastepnie przeprowadzamy test na wystepowanie efektów ARCH wsród stóp zwrotów. Niestety wyniki wskazuja jednoznacznie, ze nie mozemy odrzucic hipotezy zerowej o braku wystepowania efektów ARCH.

ArchTest(tab$r, lags = 5)

    ARCH LM-test; Null hypothesis: no ARCH effects

data:  tab$r
Chi-squared = 8.4813, df = 5, p-value = 0.1316

Wybór Modelu

W poszukiwaniu najodpowiedniejszej formy modelu, zaglebimy sie w klase modeli Garch(p,q). Wywodza sie one z klasy Arch(q). Zastosowanie jednak wersji w tej wlasnie postaci czesto wiaze sie z przjmowaniem duzych opóznien, co powoduje, ze zmuszeni jestesmy estymowac nierzadko bardzo duza liczbe parametrów. Poniewaz nie jest to rzecz pozadana, wprowadzamy model ougólnionej metody autoregresyjnej heteroskedastycznosci warunkoej - Garch. W naszym Badaniu zajmiemy sie wiec analiza modelu Garch, Egarch oraz GJGarach, a takze Garch-t.

Na pierwszy model bierzemy klase modeli Garch. Sa to modele, które dopuszczaja aby wartosci warunkowej wariancji zalezaly takze od swoich wlasnych opóznien. Zaczniemy od sprawdzenie modelu GARCH(1,1)

spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(0, 0), include.mean = T),
                   distribution.model = "norm")
garch1.1 <- ugarchfit(spec = spec, data = na.omit(tab$r))
garch1.1
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error    t value Pr(>|t|)
mu      0.001129    0.000568    1.98873 0.046731
omega   0.000000    0.000000    0.75492 0.450298
alpha1  0.000317    0.000546    0.58120 0.561109
beta1   0.997094    0.000260 3829.66242 0.000000

Robust Standard Errors:
        Estimate  Std. Error    t value Pr(>|t|)
mu      0.001129    0.000540   2.091481 0.036485
omega   0.000000    0.000004   0.078558 0.937384
alpha1  0.000317    0.006402   0.049579 0.960458
beta1   0.997094    0.004138 240.937155 0.000000

LogLikelihood : 1154.551 

Information Criteria
------------------------------------
                    
Akaike       -6.1692
Bayes        -6.1271
Shibata      -6.1694
Hannan-Quinn -6.1525

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4235  0.5152
Lag[2*(p+q)+(p+q)-1][2]    0.7610  0.5827
Lag[4*(p+q)+(p+q)-1][5]    2.9588  0.4146
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                    0.04434  0.8332
Lag[2*(p+q)+(p+q)-1][5]   4.93094  0.1587
Lag[4*(p+q)+(p+q)-1][9]   6.43205  0.2516
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.4585 0.500 2.000  0.4983
ARCH Lag[5]    0.8669 1.440 1.667  0.7728
ARCH Lag[7]    1.0195 2.315 1.543  0.9104

Nyblom stability test
------------------------------------
Joint Statistic:  89.298
Individual Statistics:               
mu      0.05718
omega  16.36172
alpha1  0.08453
beta1   0.09955

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.07 1.24 1.6
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.4495 0.1480    
Negative Sign Bias  0.6023 0.5474    
Positive Sign Bias  0.7419 0.4586    
Joint Effect        2.2070 0.5306    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     21.91      0.28895
2    30     40.49      0.07631
3    40     52.63      0.07123
4    50     57.97      0.17825


Elapsed time : 0.0896039 

Suma parametrów w modelu jest mniejsza o 1. Wszystkie parametry sa dodatnie, jednak tylko Beta1, zdaje sie byc mocno istotna w modelu (p-value-0.000). Na podstawie testu Ljunga-Boxa dla kwadratów wystandaryzowanych reszt, nie mamy podstaw do odrzucenia hipotezy, ze kwadraty wystandaryzowanych reszt sa bialym szumem. P-value dla testu LM ARCH wskazuje nam na brak podstaw od odrzucenia hipotezy zerowej o braku efektów ARCH wsród reszt modelu. Wartosc AIC dla tego modelu to -6.1692.

Nastepnie sprawdzilismy model GARCH(1,2)

spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 2)),
                   mean.model = list(armaOrder = c(0, 0), include.mean = T),
                   distribution.model = "norm")
garch1.2 <- ugarchfit(spec = spec, data = na.omit(tab$r))
garch1.2
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : sGARCH(1,2)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error    t value Pr(>|t|)
mu      0.001043    0.000567 1.8411e+00 0.065612
omega   0.000000    0.000001 1.0580e-01 0.915743
alpha1  0.000000    0.000154 2.4900e-04 0.999801
beta1   0.029005    0.000031 9.4650e+02 0.000000
beta2   0.969995    0.000058 1.6676e+04 0.000000

Robust Standard Errors:
        Estimate  Std. Error    t value Pr(>|t|)
mu      0.001043    0.000551 1.8943e+00 0.058185
omega   0.000000    0.000010 7.7400e-03 0.993825
alpha1  0.000000    0.001073 3.6000e-05 0.999971
beta1   0.029005    0.000820 3.5360e+01 0.000000
beta2   0.969995    0.000800 1.2129e+03 0.000000

LogLikelihood : 1154.681 

Information Criteria
------------------------------------
                    
Akaike       -6.1645
Bayes        -6.1119
Shibata      -6.1649
Hannan-Quinn -6.1436

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4112  0.5214
Lag[2*(p+q)+(p+q)-1][2]    0.7564  0.5845
Lag[4*(p+q)+(p+q)-1][5]    2.9686  0.4128
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                     0.04217  0.8373
Lag[2*(p+q)+(p+q)-1][8]    6.14340  0.2211
Lag[4*(p+q)+(p+q)-1][14]   8.81635  0.2984
d.o.f=3

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[4]   0.06078 0.500 2.000  0.8053
ARCH Lag[6]   0.64962 1.461 1.711  0.8494
ARCH Lag[8]   1.92677 2.368 1.583  0.7563

Nyblom stability test
------------------------------------
Joint Statistic:  14.6559
Individual Statistics:               
mu      0.07545
omega  24.75807
alpha1  0.09837
beta1   0.11938
beta2   0.11938

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.28 1.47 1.88
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.4486 0.1483    
Negative Sign Bias  0.5935 0.5532    
Positive Sign Bias  0.7465 0.4558    
Joint Effect        2.2046 0.5310    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     22.01      0.28359
2    30     36.30      0.16490
3    40     56.06      0.03764
4    50     57.43      0.19119


Elapsed time : 0.1101999 

W modelu tym, podobnie jak w modelu dla parametrów (1,1) nieistotne okazaly sie byc parametry stalej oraz alpha. Wartosc AIC to -6.1645 co mogloby sugerowac, ze jest on nieznacznie lepszy od poprzedniego, pomimo iz równiez dla niego nie mamy podstaw do odrzucenia hipotezy o braku efektów typu Arch w modelu.

Stosujac kolejna wersje modelu GARCH(2,2) dochodzimy do takich samych wniosków co przy poprzednich modelach, dla wszystkich testów. Równiez wartosc AIC nie zmienia sie praktycznie i wciaz oscyluje wokól (-6.16)/(-6.17). Takze wykorzystanie przez nas modelu GARCH(2,1) nie wywolalo, zadnej róznicy w stosunku do poprzednich modeli.

W kolejnej fazie zwrócilismy sie w strone sprawdzenia modeli EGARCH, zwiazanych z symulowaniem efektu dzzwigni. W modelu takim wykorzystujemy asymetryczna krzywa wplywu informacji.

spec = ugarchspec(variance.model = list(model ="eGARCH",
                                        garchOrder = c(1, 1)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
egarch1.1 <- ugarchfit( spec = spec, data = na.omit(tab$r))
egarch1.1
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : eGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error  t value Pr(>|t|)
omega  -3.688485    2.410057 -1.53046 0.125904
alpha1  0.028886    0.067848  0.42574 0.670300
beta1   0.591712    0.266774  2.21802 0.026553
gamma1  0.123224    0.109390  1.12647 0.259968

Robust Standard Errors:
        Estimate  Std. Error  t value Pr(>|t|)
omega  -3.688485    1.593943 -2.31406 0.020664
alpha1  0.028886    0.084718  0.34096 0.733134
beta1   0.591712    0.177022  3.34259 0.000830
gamma1  0.123224    0.092060  1.33852 0.180726

LogLikelihood : 1153.909 

Information Criteria
------------------------------------
                    
Akaike       -6.1657
Bayes        -6.1237
Shibata      -6.1660
Hannan-Quinn -6.1490

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.6277  0.4282
Lag[2*(p+q)+(p+q)-1][2]    0.7734  0.5780
Lag[4*(p+q)+(p+q)-1][5]    2.8324  0.4385
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4511  0.5018
Lag[2*(p+q)+(p+q)-1][5]    4.3189  0.2169
Lag[4*(p+q)+(p+q)-1][9]    5.7999  0.3219
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.6015 0.500 2.000  0.4380
ARCH Lag[5]    1.2614 1.440 1.667  0.6573
ARCH Lag[7]    1.5063 2.315 1.543  0.8201

Nyblom stability test
------------------------------------
Joint Statistic:  0.4065
Individual Statistics:              
omega  0.08535
alpha1 0.15215
beta1  0.08674
gamma1 0.05458

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.07 1.24 1.6
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value    prob sig
Sign Bias           1.6629 0.09719   *
Negative Sign Bias  0.4663 0.64126    
Positive Sign Bias  1.4840 0.13866    
Joint Effect        3.4779 0.32364    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     22.66       0.2528
2    30     36.79       0.1518
3    40     43.84       0.2738
4    50     57.43       0.1912


Elapsed time : 0.4508021 

Nastepnie symulowalismy model EGARCH(1,2).

spec2 =  ugarchspec(variance.model = list(model ="eGARCH",
                                         garchOrder = c(1, 2)), 
                   mean.model = list(armaOrder = c(0, 0), include.mean = F),
                   distribution.model = "norm")

egarch1.2 <- ugarchfit( spec = spec,
                        data = na.omit(tab$r))

*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : eGARCH(1,2)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error    t value Pr(>|t|)
omega  -0.069775    0.000001 -69688.172        0
alpha1 -0.008328    0.000173    -48.045        0
beta1   0.165391    0.000010  16801.502        0
beta2   0.826662    0.000072  11416.695        0
gamma1 -0.069402    0.000208   -332.902        0

Robust Standard Errors:
        Estimate  Std. Error    t value Pr(>|t|)
omega  -0.069775    0.000067 -1048.0600  0.0e+00
alpha1 -0.008328    0.002034    -4.0938  4.2e-05
beta1   0.165391    0.000161  1024.8466  0.0e+00
beta2   0.826662    0.001257   657.6153  0.0e+00
gamma1 -0.069402    0.000126  -550.0320  0.0e+00

LogLikelihood : 1155.964 

Information Criteria
------------------------------------
                    
Akaike       -6.1714
Bayes        -6.1188
Shibata      -6.1717
Hannan-Quinn -6.1505

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.3656  0.5454
Lag[2*(p+q)+(p+q)-1][2]    0.6361  0.6330
Lag[4*(p+q)+(p+q)-1][5]    2.9926  0.4084
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                      0.4014  0.5264
Lag[2*(p+q)+(p+q)-1][8]     5.4847  0.2912
Lag[4*(p+q)+(p+q)-1][14]    8.2421  0.3572
d.o.f=3

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[4]   0.02311 0.500 2.000  0.8792
ARCH Lag[6]   1.02056 1.461 1.711  0.7419
ARCH Lag[8]   2.07798 2.368 1.583  0.7258

Nyblom stability test
------------------------------------
Joint Statistic:  3.1584
Individual Statistics:             
omega  0.2421
alpha1 0.2376
beta1  0.2420
beta2  0.2392
gamma1 0.2376

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.28 1.47 1.88
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.4851 0.1384    
Negative Sign Bias  0.9468 0.3444    
Positive Sign Bias  0.2538 0.7998    
Joint Effect        2.5520 0.4660    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     16.87       0.5989
2    30     23.60       0.7486
3    40     30.54       0.8316
4    50     61.99       0.1008


Elapsed time : 1.182016 
spec = ugarchspec(variance.model = list(model ="eGARCH",
                                        garchOrder = c(2, 1)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
egarch2.1 <- ugarchfit( spec = spec, data = na.omit(tab$r))
egarch2.1
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : eGARCH(2,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
         Estimate  Std. Error   t value Pr(>|t|)
omega   -9.999968    4.023695 -2.485270 0.012945
alpha1  -0.003166    0.078035 -0.040569 0.967640
alpha2  -0.004625    0.082795 -0.055863 0.955451
beta1   -0.104051    0.443579 -0.234571 0.814542
gamma1   0.033845    0.121969  0.277489 0.781405
gamma2   0.310612    0.118754  2.615594 0.008907

Robust Standard Errors:
         Estimate  Std. Error   t value Pr(>|t|)
omega   -9.999968    5.538793 -1.805442 0.071006
alpha1  -0.003166    0.091471 -0.034609 0.972391
alpha2  -0.004625    0.109608 -0.042198 0.966341
beta1   -0.104051    0.609437 -0.170733 0.864434
gamma1   0.033845    0.132659  0.255127 0.798625
gamma2   0.310612    0.130062  2.388174 0.016932

LogLikelihood : 1157.477 

Information Criteria
------------------------------------
                    
Akaike       -6.1741
Bayes        -6.1111
Shibata      -6.1746
Hannan-Quinn -6.1491

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.7087  0.3999
Lag[2*(p+q)+(p+q)-1][2]    0.7269  0.5960
Lag[4*(p+q)+(p+q)-1][5]    3.0831  0.3921
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                   0.0005526  0.9812
Lag[2*(p+q)+(p+q)-1][8]  1.0473016  0.9707
Lag[4*(p+q)+(p+q)-1][14] 3.2635261  0.9397
d.o.f=3

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[4]   0.03738 0.500 2.000  0.8467
ARCH Lag[6]   1.25359 1.461 1.711  0.6764
ARCH Lag[8]   2.05578 2.368 1.583  0.7303

Nyblom stability test
------------------------------------
Joint Statistic:  0.8214
Individual Statistics:              
omega  0.14306
alpha1 0.03676
alpha2 0.32853
beta1  0.14329
gamma1 0.04440
gamma2 0.25397

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.49 1.68 2.12
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.6359 0.1027    
Negative Sign Bias  0.8249 0.4099    
Positive Sign Bias  0.7350 0.4628    
Joint Effect        2.7503 0.4317    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     21.16      0.32827
2    30     35.82      0.17886
3    40     55.20      0.04439
4    50     51.26      0.38503


Elapsed time : 0.3430018 
spec = ugarchspec(variance.model = list(model ="eGARCH",
                                        garchOrder = c(2, 2)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
egarch2.2 <- ugarchfit( spec = spec, data = na.omit(tab$r))
egarch2.2
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : eGARCH(2,2)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
         Estimate  Std. Error   t value Pr(>|t|)
omega  -10.000000    4.438206 -2.253163 0.024249
alpha1   0.006491    0.076415  0.084946 0.932304
alpha2  -0.002844    0.078486 -0.036237 0.971093
beta1   -0.149600    0.373671 -0.400351 0.688898
beta2    0.048950    0.271085  0.180571 0.856704
gamma1   0.019175    0.119009  0.161123 0.871997
gamma2   0.299125    0.117315  2.549754 0.010780

Robust Standard Errors:
         Estimate  Std. Error   t value Pr(>|t|)
omega  -10.000000    4.081499 -2.450080 0.014282
alpha1   0.006491    0.091800  0.070710 0.943628
alpha2  -0.002844    0.096166 -0.029575 0.976406
beta1   -0.149600    0.440968 -0.339253 0.734419
beta2    0.048950    0.185235  0.264260 0.791580
gamma1   0.019175    0.132248  0.144993 0.884716
gamma2   0.299125    0.129360  2.312340 0.020759

LogLikelihood : 1157.437 

Information Criteria
------------------------------------
                    
Akaike       -6.1686
Bayes        -6.0950
Shibata      -6.1693
Hannan-Quinn -6.1393

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.6989  0.4031
Lag[2*(p+q)+(p+q)-1][2]    0.7186  0.5993
Lag[4*(p+q)+(p+q)-1][5]    3.1073  0.3878
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                     0.01006  0.9201
Lag[2*(p+q)+(p+q)-1][11]   2.25987  0.9420
Lag[4*(p+q)+(p+q)-1][19]   5.06042  0.9363
d.o.f=4

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[5]    0.9907 0.500 2.000  0.3196
ARCH Lag[7]    1.5137 1.473 1.746  0.6193
ARCH Lag[9]    3.4834 2.402 1.619  0.4797

Nyblom stability test
------------------------------------
Joint Statistic:  1.0871
Individual Statistics:              
omega  0.26884
alpha1 0.03483
alpha2 0.31497
beta1  0.26944
beta2  0.26525
gamma1 0.06802
gamma2 0.22522

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.69 1.9 2.35
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.6108 0.1081    
Negative Sign Bias  0.9305 0.3527    
Positive Sign Bias  0.6738 0.5009    
Joint Effect        2.6296 0.4523    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     21.05       0.3341
2    30     30.35       0.3966
3    40     48.77       0.1358
4    50     61.45       0.1092


Elapsed time : 0.4784021 

Kolejna klasa analizowanych przez nas modeli sa modele z klasy GJR-GARCH(p,q).Jest to podejscie, które modeluje asymetryczny wplyw pozytywnych i negatywnych wiadomosci na zmiennosc. Na pierwszy model do omówienia wybralismy GJR-Garch(1,1).

spec = ugarchspec(variance.model = list(model ='gjrGARCH',
                                        garchOrder = c(1, 1)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
gjgarch1.1 <- ugarchfit( spec = spec, data = na.omit(tab$r))
gjgarch1.1
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : gjrGARCH(1,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000    0.000000    1.304862  0.19194
alpha1  0.000099    0.003787    0.026014  0.97925
beta1   0.998374    0.000242 4119.643412  0.00000
gamma1 -0.004248    0.010483   -0.405249  0.68529

Robust Standard Errors:
        Estimate  Std. Error    t value Pr(>|t|)
omega   0.000000    0.000002   0.170147  0.86489
alpha1  0.000099    0.006725   0.014648  0.98831
beta1   0.998374    0.001209 825.566451  0.00000
gamma1 -0.004248    0.023685  -0.179358  0.85766

LogLikelihood : 1153.058 

Information Criteria
------------------------------------
                    
Akaike       -6.1612
Bayes        -6.1191
Shibata      -6.1614
Hannan-Quinn -6.1445

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4569  0.4991
Lag[2*(p+q)+(p+q)-1][2]    0.7713  0.5787
Lag[4*(p+q)+(p+q)-1][5]    2.9670  0.4131
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                        statistic p-value
Lag[1]                    0.01252  0.9109
Lag[2*(p+q)+(p+q)-1][5]   5.72455  0.1044
Lag[4*(p+q)+(p+q)-1][9]   7.35152  0.1715
d.o.f=2

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[3]    0.3427 0.500 2.000  0.5583
ARCH Lag[5]    0.9642 1.440 1.667  0.7436
ARCH Lag[7]    1.1654 2.315 1.543  0.8853

Nyblom stability test
------------------------------------
Joint Statistic:  93.0365
Individual Statistics:              
omega  4.25718
alpha1 0.09532
beta1  0.11157
gamma1 0.10525

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.07 1.24 1.6
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.5449 0.1232    
Negative Sign Bias  0.7179 0.4733    
Positive Sign Bias  0.6852 0.4937    
Joint Effect        2.5062 0.4742    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     21.26       0.3225
2    30     36.95       0.1476
3    40     36.76       0.5725
4    50     50.19       0.4260


Elapsed time : 0.3844051 
spec = ugarchspec(variance.model = list(model ='gjrGARCH',
                                        garchOrder = c(1, 2)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
gjgarch1.2 <- ugarchfit( spec = spec, data = na.omit(tab$r))
gjgarch1.2
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : gjrGARCH(1,2)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000     1.0e-06  5.0000e-06  1.00000
alpha1  0.000053     4.9e-05  1.0682e+00  0.28544
beta1   0.422241     1.6e-05  2.6193e+04  0.00000
beta2   0.580660     2.0e-06  3.1393e+05  0.00000
gamma1 -0.008055     8.6e-05 -9.3142e+01  0.00000

Robust Standard Errors:
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000     7.0e-06      0.0000  1.00000
alpha1  0.000053     4.8e-05      1.0886  0.27634
beta1   0.422241     2.5e-05  16665.4270  0.00000
beta2   0.580660     3.0e-06 208469.6207  0.00000
gamma1 -0.008055     8.9e-05    -90.1099  0.00000

LogLikelihood : 1153.061 

Information Criteria
------------------------------------
                    
Akaike       -6.1558
Bayes        -6.1033
Shibata      -6.1562
Hannan-Quinn -6.1349

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4462  0.5041
Lag[2*(p+q)+(p+q)-1][2]    0.7710  0.5789
Lag[4*(p+q)+(p+q)-1][5]    2.9838  0.4100
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                     0.01188  0.9132
Lag[2*(p+q)+(p+q)-1][8]    7.05576  0.1475
Lag[4*(p+q)+(p+q)-1][14]   9.55349  0.2332
d.o.f=3

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[4]   0.07607 0.500 2.000  0.7827
ARCH Lag[6]   0.95983 1.461 1.711  0.7593
ARCH Lag[8]   2.09680 2.368 1.583  0.7220

Nyblom stability test
------------------------------------
Joint Statistic:  71.8171
Individual Statistics:              
omega  32.9633
alpha1  0.1363
beta1   0.1512
beta2   0.1512
gamma1  0.1501

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.28 1.47 1.88
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.5330 0.1261    
Negative Sign Bias  0.7275 0.4674    
Positive Sign Bias  0.6854 0.4935    
Joint Effect        2.4512 0.4842    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     22.87       0.2431
2    30     29.23       0.4534
3    40     44.48       0.2520
4    50     53.94       0.2910


Elapsed time : 0.5324008
spec = ugarchspec(variance.model = list(model ='gjrGARCH',
                                        garchOrder = c(2, 1)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm")
gjgarch2.1 <- ugarchfit( spec = spec, data = na.omit(tab$r))
gjgarch2.1
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : gjrGARCH(2,1)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000    0.000001  1.1453e-01  0.90882
alpha1  0.000000    0.027426  1.0000e-06  1.00000
alpha2  0.000000    0.027736  0.0000e+00  1.00000
beta1   1.000000    0.000000  3.9904e+08  0.00000
gamma1 -0.001784    0.008147 -2.1891e-01  0.82672
gamma2 -0.000216    0.004164 -5.1975e-02  0.95855

Robust Standard Errors:
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000    0.000015  4.4900e-03  0.99642
alpha1  0.000000    0.016974  1.0000e-06  1.00000
alpha2  0.000000    0.020007  1.0000e-06  1.00000
beta1   1.000000    0.000000  4.0939e+08  0.00000
gamma1 -0.001784    0.012841 -1.3889e-01  0.88953
gamma2 -0.000216    0.006821 -3.1732e-02  0.97469

LogLikelihood : 1153.066 

Information Criteria
------------------------------------
                    
Akaike       -6.1505
Bayes        -6.0874
Shibata      -6.1510
Hannan-Quinn -6.1254

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4178  0.5180
Lag[2*(p+q)+(p+q)-1][2]    0.7588  0.5835
Lag[4*(p+q)+(p+q)-1][5]    2.9771  0.4112
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                    0.009117  0.9239
Lag[2*(p+q)+(p+q)-1][8]   7.108298  0.1440
Lag[4*(p+q)+(p+q)-1][14]  9.687724  0.2226
d.o.f=3

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[4]   0.06369 0.500 2.000  0.8008
ARCH Lag[6]   0.94106 1.461 1.711  0.7647
ARCH Lag[8]   2.11724 2.368 1.583  0.7178

Nyblom stability test
------------------------------------
Joint Statistic:  80.4305
Individual Statistics:              
omega  33.9833
alpha1  0.1252
alpha2  0.1246
beta1   0.1421
gamma1  0.1353
gamma2  0.1350

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.49 1.68 2.12
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.5150 0.1306    
Negative Sign Bias  0.6810 0.4963    
Positive Sign Bias  0.6886 0.4915    
Joint Effect        2.4221 0.4895    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     19.12       0.4493
2    30     34.86       0.2093
3    40     40.19       0.4173
4    50     48.85       0.4792


Elapsed time : 0.440202 
*---------------------------------*
*          GARCH Model Fit        *
*---------------------------------*

Conditional Variance Dynamics   
-----------------------------------
GARCH Model : gjrGARCH(2,2)
Mean Model  : ARFIMA(0,0,0)
Distribution    : norm 

Optimal Parameters
------------------------------------
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000    0.000001  5.0000e-06 0.999996
alpha1  0.000052    0.006624  7.8450e-03 0.993741
alpha2  0.000138    0.000744  1.8556e-01 0.852791
beta1   0.075382    0.000179  4.2013e+02 0.000000
beta2   0.926682    0.000000  2.1922e+07 0.000000
gamma1  0.054066    0.012150  4.4501e+00 0.000009
gamma2 -0.061137    0.007338 -8.3310e+00 0.000000

Robust Standard Errors:
        Estimate  Std. Error     t value Pr(>|t|)
omega   0.000000    0.000005  1.0000e-06 0.999999
alpha1  0.000052    0.033919  1.5320e-03 0.998778
alpha2  0.000138    0.003411  4.0465e-02 0.967723
beta1   0.075382    0.001936  3.8936e+01 0.000000
beta2   0.926682    0.000000  1.2689e+07 0.000000
gamma1  0.054066    0.039829  1.3575e+00 0.174632
gamma2 -0.061137    0.037061 -1.6496e+00 0.099023

LogLikelihood : 1154.598 

Information Criteria
------------------------------------
                    
Akaike       -6.1533
Bayes        -6.0797
Shibata      -6.1540
Hannan-Quinn -6.1241

Weighted Ljung-Box Test on Standardized Residuals
------------------------------------
                        statistic p-value
Lag[1]                     0.4296  0.5122
Lag[2*(p+q)+(p+q)-1][2]    0.5582  0.6669
Lag[4*(p+q)+(p+q)-1][5]    2.5702  0.4911
d.o.f=0
H0 : No serial correlation

Weighted Ljung-Box Test on Standardized Squared Residuals
------------------------------------
                         statistic p-value
Lag[1]                    0.004107  0.9489
Lag[2*(p+q)+(p+q)-1][11]  8.068055  0.2108
Lag[4*(p+q)+(p+q)-1][19] 11.019005  0.3485
d.o.f=4

Weighted ARCH LM Tests
------------------------------------
            Statistic Shape Scale P-Value
ARCH Lag[5]     1.203 0.500 2.000  0.2727
ARCH Lag[7]     1.315 1.473 1.746  0.6711
ARCH Lag[9]     3.058 2.402 1.619  0.5547

Nyblom stability test
------------------------------------
Joint Statistic:  71.2246
Individual Statistics:              
omega  29.2950
alpha1  0.1506
alpha2  0.1641
beta1   0.1768
beta2   0.1754
gamma1  0.1692
gamma2  0.1787

Asymptotic Critical Values (10% 5% 1%)
Joint Statistic:         1.69 1.9 2.35
Individual Statistic:    0.35 0.47 0.75

Sign Bias Test
------------------------------------
                   t-value   prob sig
Sign Bias           1.3190 0.1880    
Negative Sign Bias  0.2408 0.8098    
Positive Sign Bias  0.5160 0.6062    
Joint Effect        2.4636 0.4819    


Adjusted Pearson Goodness-of-Fit Test:
------------------------------------
  group statistic p-value(g-1)
1    20     20.51       0.3644
2    30     34.21       0.2316
3    40     47.48       0.1653
4    50     52.07       0.3555


Elapsed time : 0.615802 

Szacowanie wartosci narazonej na ryzyko okres in-sample

W pierwszym kroku postanowiono podczas szacowania wartosci narazonej na ryzyko okreslic zakres okresów in-sample oraz out-sample. Poniewaz dane pochodza za okres 1,5 roku i jest okres stosunkowo krótki , postanowiono przyjac za okres in-sample czas obejmujacy 2016 r., zas za out-sample pierwsze pólrocze z 2017 r., by posiadac wystarczajaca liczbe rekordów, by przeprowadzic badanie . Wykonano nastepujace czynnosci:

  1. Ograniczono podzbiór in sample
  2. Wystandaryzowano zwroty z portfela
  3. Porównano 1% kwantyl rozkladu normalnego z 1% kwarntylem empiryczny mrozkladu zwrotów Wartosc 1% kwantyla empirycznego rozkladu zwrotów wyniosla -2.246897 i róznila sie od 1% kwanty la rozkladu normalnego (-2.326348). Wartosc narazona na ryzyko zostala oszacowana jako iloczyn 1% kwantyla empirycznego rozkladu oraz wektora oszacowan odchylenia standardowego.
  4. Oszacowano nastepujace modele: GARCH(1,1), GARCH-t(1,1), GJRGARCH (1,2) oraz EGARCH (1,2)

Wyniki analizy dla poszczególnych modeli przedstawiono ponizej. GARCH (1,1) 13

tab20 <- tab[tab$Data <= as.Date("2016-12-30"), ]
tab20 <- tab20[as.Date("2016-01-05") <= tab20$Data, ]


tail(tab20)
tab20$rstd <- (tab20$r - mean(tab20$r, na.rm=T)) /
  sd(tab20$r ,na.rm = T)
tail(tab20)

q1 <- quantile(tab20$rstd, 0.01, na.rm = T)
q1

qnorm(0.01, 0, 1)


spec <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(0, 0), include.mean = T),
                   distribution.model = "norm")

tab20.garch1.1 <- ugarchfit(spec = spec,
                            data = na.omit(tab20$r))
plot(tab20.garch1.1, which = 10)

str(tab2.garch1.1)
tab20.garch1.1@fit$sigma

tab20$VaR <- q1 * tab20.garch1.1@fit$
  
  
plot(tab20$Data, tab20$r, col = "red", lwd = 1, type = 'l',
       ylim = c(-0.1, 0.1), ylab="",
       xlab="Date", main="Zwroty i VaR dla modelu GARCH(1,1)")
abline(h = 0, lty = 2)
lines(tab20$Data, tab20$VaR, type = 'l', col = "green")

sum(tab20$r < tab20$VaR) / length(tab20$VaR)

A wykres Zwrotów i VaR dla modelu GARCH(1,1) prezentuje sie nastepujaco 14

Straty w modelu GARCH (1,1) przekraczaja zakladany poziom VAR w 0.012% przypadków.

Kolejnym uwzglednionym przez nas modelem jest GJRGARCH(1,2). 15

Straty w modelu GJRGARCH (1,2) przekraczaja zakladany poziom VAR w 0.012% przypadków. 16

Ostatni przenalizowany przez nas model to EGARCH(1,2) . 17

Straty w modelu EGARCH (1,2) przekraczaja zakladany poziom VAR w 0.008% przypadków. 18

Szacowanie wartosci narazonej na ryzyko w okresie out-of-sample

Szacowanie wartosci narazonej na ryzyko okres out-sample Jak wspomniano powyzej w okresie out-sample przyjeto podzbiór od poczatku stycznia 2017 r. do konca czerwca 2017 r.

GARCH (1,1)

start  <- tab$obs[tab$Data == as.Date("2017-01-12")]
finish <- tab$obs[tab$Data == as.Date("2017-06-30")]
tab4 <-tab[start:finish, ]


spec2 <- ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(0, 0), include.mean = T),
                   distribution.model = "norm")

garch1.1 <- ugarchfit( spec = spec,
                        data = na.omit(tab$r))

garch1.1

tab$r<-((tab$rbit+tab$rbra+tab$rpekao+tab$rorange+tab$rzloto+tab$rcda)/6)


VaR <- rep(NA,times = finish - start + 1)
for (k in start:finish) {
  tmp.data <- tab[tab$obs <= (k - 1), ]
  tmp.data$rstd <- (tmp.data$r - mean(tmp.data$r, na.rm = T)) /
    sd(tmp.data$r, na.rm = T)
  q2 <- quantile(tmp.data$rstd, 0.01, na.rm = T)
  tmp.garch1.1<- ugarchfit(spec = spec2, data = na.omit(tmp.data$r))
  sigma.forecast  <- ugarchforecast(tmp.garch1.1, n.ahead = 1)
  sigma.forecast2 <- sigma.forecast@forecast$sigmaFor[1, 1]
  VaR[k - start + 1] <- q2 * sigma.forecast2
}


tab4$VaR <- VaR

Wykres dla GARCH (1,1) wyglada nastepujaco: 20

Straty w modelu GARCH (1,1) przekraczaja zakladany poziom VAR w 0 % przypadków.

GJRGARCH (1,2)

start  <- tab$obs[tab$Data == as.Date("2017-01-03")]
finish <- tab$obs[tab$Data == as.Date("2017-06-30")]

tab41 <-tab[start:finish, ]


spec2 = ugarchspec(variance.model = list(model ='gjrGARCH',
                                        garchOrder = c(1, 2)),
                  mean.model = list(armaOrder = c(0, 0), include.mean = F),
                  distribution.model = "norm") 

gjrgarch1.2 <- ugarchfit( spec = spec2,
                        data = na.omit(tab$r))

gjrgarch1.2

tab$r<-((tab$rbit+tab$rbra+tab$rpekao+tab$rorange+tab$rzloto+tab$rcda)/6)


VaR <- rep(NA,times = finish - start + 1)
for (k in start:finish) {
  tmp.data <- tab[tab$obs <= (k - 1), ]
  tmp.data$rstd <- (tmp.data$r - mean(tmp.data$r, na.rm = T)) /
    sd(tmp.data$r, na.rm = T)
  q2 <- quantile(tmp.data$rstd, 0.01, na.rm = T)
  tmp.gjrgarch1.2<- ugarchfit(spec = spec2, data = na.omit(tmp.data$r))
  sigma.forecast  <- ugarchforecast(tmp.gjrgarch1.2, n.ahead = 1)
  sigma.forecast2 <- sigma.forecast@forecast$sigmaFor[1, 1]
  VaR[k - start + 1] <- q2 * sigma.forecast2
}


tab41$VaR <- VaR

Wykres dla GJRGARCH (1,2) wyglada nastepujaco: 22

Straty w modelu GJRGARCH (1,2) przekraczaja zakladany poziom VAR w %przypadków.

EGARCH (1,2)

start  <- tab$obs[tab$Data == as.Date("2017-01-03")]
finish <- tab$obs[tab$Data == as.Date("2017-06-30")]
tab4 <-tab[start:finish, ]

#eGARCH(1,2)

spec2 =  ugarchspec(variance.model = list(model ="eGARCH",
                                          garchOrder = c(1, 2)), 
                    mean.model = list(armaOrder = c(0, 0), include.mean = F),
                    distribution.model = "norm")

egarch1.2 <- ugarchfit( spec = spec,
                        data = na.omit(tab$r))

egarch1.2

tab$r<-((tab$rbit+tab$rbra+tab$rpekao+tab$rorange+tab$rzloto+tab$rcda)/6)


VaR <- rep(NA,times = finish - start + 1)
for (k in start:finish) {
  tmp.data <- tab[tab$obs <= (k - 1), ]
  tmp.data$rstd <- (tmp.data$r - mean(tmp.data$r, na.rm = T)) /
    sd(tmp.data$r, na.rm = T)
  q2 <- quantile(tmp.data$rstd, 0.01, na.rm = T)
  tmp.egarch1.2 <- ugarchfit(spec = spec2, data = na.omit(tmp.data$r))
  sigma.forecast  <- ugarchforecast(tmp.egarch1.2, n.ahead = 1)
  sigma.forecast2 <- sigma.forecast@forecast$sigmaFor[1, 1]
  VaR[k - start + 1] <- q2 * sigma.forecast2
}


tab4$VaR <- VaR

Wykres dla EGARCH (1,2) wyglada nastepujaco: 23

Straty w modelu EGARCH (1,2) przekraczaja zakladany poziom VAR w 0% przypadków.

Podsumowanie

Badanie ukazalo, ze najlepiej dopasowanym modelem dla zbudowanego portfela inwestycyjnego jest EGARCH(1,2). Wniosek taki zostal wysuniety na podstawie przede wszystkim analizy istotnosci parametrów, ale takze kryteriów informacyjnych. EGARCH (1,2), GARCH (1,1) oraz GJRGARCH (1,2) byly najlepiej dopasowanymi modelami w swoich grupach, dlatego tez analizowano je w okresach out-sample oraz in-sample. Analizie wrazliwosci poddany zostal juz jednak tylko najlepiej dopasowany modeli, a mianowicie EGARCH(1,2)