Weryfikacja założeń dotyczących średniej i wariancji

Modele GARCH w R

Kris Boudt

Professor of finance and econometrics

Weryfikacja 1: Średnia i odchylenie standardowe standaryzowanych zwrotów

Wzór na standaryzowane zwroty

$$ Z_{t} = \frac{R_{t} - \hat{\mu_{t}}}{ \hat{\sigma_{t}}} $$

  • Pierwsza weryfikacja poprawności modelu:
    • Średnia próbkowa standaryzowanych zwrotów $\approx$ 0
    • Odchylenie standardowe próbkowe standaryzowanych zwrotów $\approx$ 1
Modele GARCH w R

Weryfikacja 2: Wykres szeregu czasowego standaryzowanych zwrotów

  • Druga weryfikacja poprawności modelu:
    • wykres szeregu czasowego standaryzowanych zwrotów
    • standaryzowane zwroty powinny mieć stałą zmienność
Modele GARCH w R

Modele GARCH w R

Modele GARCH w R

Weryfikacja 3: Brak przewidywalności w bezwzględnych zwrotach standaryzowanych

  • Trzecia weryfikacja poprawności modelu:

    • sprawdzenie braku korelacji między przeszłymi a bieżącymi bezwzględnymi zwrotami standaryzowanymi.
    • oznacza to: $ Corr(|Z_{t-k}|, |Z_{t}|) \approx 0, $ dla $k>0$
  • Dlaczego?

    • Wielkość bezwzględnego zwrotu standaryzowanego powinna być stała $\rightarrow$ brak korelacji w bezwzględnych zwrotach standaryzowanych.
Modele GARCH w R

Autokorelacje

  • Takie korelacje wewnątrz szeregu czasowego nazywane są autokorelacjami rzędu k
    • $k=1$: $Corr(|Z_{t-1}|, |Z_{t}|)$: Korelacja bieżącego bezwzględnego zwrotu standaryzowanego z jego poprzednią wartością.
    • $k=2$: $Corr(|Z_{t-2}|, |Z_{t}|)$: Korelacja bieżącego bezwzględnego zwrotu standaryzowanego z wartością sprzed dwóch okresów.
    • ...
  • Wszystkie powinny wynosić 0. Wyjątek:
    • $k=0$: $Corr(|Z_{t}|, |Z_{t}|)$: Korelacja bezwzględnego zwrotu standaryzowanego z samym sobą: równa 1.
Modele GARCH w R

acf()

  • W R autokorelacje obliczamy za pomocą funkcji autokorelacji acf()
    • Wejście: szereg czasowy, maksymalny rząd
    • Wyjście: korelogram: wykres wartości autokorelacji dla różnych rzędów $k = 0, 1, ...$.
Modele GARCH w R

Zastosowanie do MSFT

garchspec <- ugarchspec(mean.model = list(armaOrder = c(1, 0)),
                        variance.model = list(model = "gjrGARCH"),
                        distribution.model = "sstd")
garchfit <- ugarchfit(data = msftret, spec = garchspec)
stdmsftret <- residuals(garchfit, standardize = TRUE)
acf(abs(msftret), 22)
acf(abs(stdmsftret), 22)
Modele GARCH w R

Modele GARCH w R

Weryfikacja 4: Test Ljunga-Boxa

  • Czwarta weryfikacja poprawności modelu:
    • Test Ljunga-Boxa sprawdzający, czy pierwsze k autokorelacji bezwzględnych zwrotów standaryzowanych $|Z_t|$ wynoszą zero: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-k}|) = 0 $$
    • Podobny do testu $t$ istotności statystycznej szacowanych parametrów, lecz tutaj oczekujemy wartości 0 dla dobrego modelu.

Reguła: wartość p poniżej 5% wskazuje, że użyty model jest niepoprawny.

Modele GARCH w R

Test Ljunga-Boxa w R

  • W R: funkcja Box.test() z 3 argumentami:
    • szereg
    • maksymalny rząd, dla którego autokorelacje wynoszą zero
    • type = "Ljung-Box"

Przykład:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
  • Wynik: wartość p
    • Reguła: wartość p poniżej 5% wskazuje, że użyty model jest niepoprawny.
Modele GARCH w R

Box.test dla bezwzględnych standaryzowanych zwrotów MSFT

Test na bezwzględnych standaryzowanych zwrotach:

Box.test(abs(stdmsftret), 22, type = "Ljung-Box")
    Box-Ljung test
data:  abs(stdmsftret)
X-squared = 25.246, df = 22, p-value = 0.2855

Uwaga: wartość p wynosi 28,55% > 5%. Nie możemy odrzucić, że: $$ H_0: Corr(|Z_t|,|Z_{t-1}|) = Corr(|Z_t|,|Z_{t-2}|) = ... = Corr(|Z_t|,|Z_{t-22}|) = 0 $$

Modele GARCH w R

Przeprowadźmy diagnostykę bezwzględnych standaryzowanych zwrotów.

Modele GARCH w R

Preparing Video For Download...