Gigantyczna kurtoza?

10

Robię opisowe statystyki dziennych zwrotów z indeksów giełdowych. To jeśli i są poziomami indeksu odpowiednio w dniu 1 i dniu 2, to jest zwrotem, którego używam (całkowicie standardowe w literaturze).P 2 l o g e ( P 2P1P2loge(P2P1)

Więc kurtoza jest ogromna w niektórych z nich. Patrzę na około 15 lat codziennych danych (czyli około obserwacji szeregów czasowych)26015

                      means     sds     mins    maxs     skews     kurts
ARGENTINA          -0.00031 0.00965 -0.33647 0.13976 -15.17454 499.20532
AUSTRIA             0.00003 0.00640 -0.03845 0.04621   0.19614   2.36104
CZECH.REPUBLIC      0.00008 0.00800 -0.08289 0.05236  -0.16920   5.73205
FINLAND             0.00005 0.00639 -0.03845 0.04622   0.19038   2.37008
HUNGARY            -0.00019 0.00880 -0.06301 0.05208  -0.10580   4.20463
IRELAND             0.00003 0.00641 -0.03842 0.04621   0.18937   2.35043
ROMANIA            -0.00041 0.00789 -0.14877 0.09353  -1.73314  44.87401
SWEDEN              0.00004 0.00766 -0.03552 0.05537   0.22299   3.52373
UNITED.KINGDOM      0.00001 0.00587 -0.03918 0.04473  -0.03052   4.23236
                   -0.00007 0.00745 -0.09124 0.06405  -1.82381  63.20596
AUSTRALIA           0.00009 0.00861 -0.08831 0.06702  -0.74937  11.80784
CHINA              -0.00002 0.00072 -0.40623 0.02031   6.26896 175.49667
HONG.KONG           0.00000 0.00031 -0.00237 0.00627   2.73415  56.18331
INDIA              -0.00011 0.00336 -0.03613 0.03063  -0.22301  10.12893
INDONESIA          -0.00031 0.01672 -0.24295 0.19268  -2.09577  54.57710
JAPAN               0.00008 0.00709 -0.03563 0.06591   0.57126   5.16182
MALAYSIA           -0.00003 0.00861 -0.35694 0.13379 -16.48773 809.07665

Moje pytanie brzmi: czy jest jakiś problem?

Chcę przeprowadzić obszerną analizę szeregów czasowych w oparciu o te dane - analizę regresji OLS i kwantyli, a także przyczynowość Grangera.

Zarówno moja odpowiedź (zależna), jak i predyktor (regresor) będą miały tę właściwość gigantycznej kurtozy. Więc będę mieć te procesy zwrotu po obu stronach równania regresji. Jeśli nienormalność przejdzie na zakłócenia, które spowodują, że moje standardowe błędy będą miały wysoką wariancję, prawda?

(Być może potrzebuję solidnego paska rozruchowego?)


źródło
3
1) Możesz przenieść to na stronę quant.stackexchange.com. 2) Co rozumiesz przez problem? Istnieje cała literatura na temat wpływu wartości odstających na momenty. Często może być bardziej sztuką niż nauką.
Jan
2
"Czy jest jakiś problem?" jest zbyt niejasny. Co chcesz zrobić z tymi danymi? Wasze ogromne kurtozy kojarzą się z ogromnym lewym przekrzywieniem. Ponieważ log (p2 / p1) = log p2 - log p1, duże lewe przekrzywienie wskazuje, że kilka razy było to bardzo niskie, to znaczy p1 znacznie wyższe niż p2, w porównaniu do zwykłego przypadku. Może to być firma bankrutująca lub coś takiego.
Peter Flom
Przepraszam za to - poprawiłem OP.
1
Zwroty kłód są zazwyczaj wypaczone i gruboogoniaste. Z tego powodu zaleca się rozważenie elastycznych dystrybucji, które mogą uchwycić to zachowanie. Zobacz na przykład 1 i 2 .
Powinieneś rzucić okiem na pomiary kutozy oparte na momentach L
kjetil b halvorsen

Odpowiedzi:

2

Spójrz na ciężkie ogony Lambert W x F lub przekrzywione rozkłady Lambert W x F spróbuj (zrzeczenie się: jestem autorem). W wersji R są zaimplementowane w pakiecie LambertW .

Powiązane posty:

Jedną zaletą w porównaniu z rozkładem Cauchy'ego lub studenta-t ze stałymi stopniami swobody jest to, że parametry ogona można oszacować na podstawie danych - dzięki czemu możesz decydować, które momenty istnieją. Ponadto platforma Lambert W x F pozwala przekształcać dane i usuwać skośność / ciężkie ogony. ITT to ważne, aby pamiętać jednak, że OLS nie wymaga normalności lub . Jednak dla Twojej EDA może to być opłacalne.XyX

Oto przykład szacunków Lamberta W x Gaussa zastosowanych do zwrotów funduszy akcyjnych.

library(fEcofin)
ret <- ts(equityFunds[, -1] * 100)
plot(ret)

Fundusze akcyjne serii czasowej

Podsumowujące wskaźniki zwrotów są podobne (nie tak ekstremalne) jak w poście PO.

data_metrics <- function(x) {
  c(mean = mean(x), sd = sd(x), min = min(x), max = max(x), 
    skewness = skewness(x), kurtosis = kurtosis(x))
}
ret.metrics <- t(apply(ret, 2, data_metrics))
ret.metrics

##          mean    sd    min   max skewness kurtosis
## EASTEU 0.1300 1.538 -18.42 12.38   -1.855    28.95
## LATAM  0.1206 1.468  -6.06  5.66   -0.434     4.21
## CHINA  0.0864 0.911  -4.71  4.27   -0.322     5.42
## INDIA  0.1515 1.502 -12.72 14.05   -0.505    15.22
## ENERGY 0.0997 1.187  -5.00  5.02   -0.271     4.48
## MINING 0.1315 1.394  -7.72  5.69   -0.692     5.64
## GOLD   0.1098 1.855 -10.14  6.99   -0.350     5.11
## WATER  0.0628 0.748  -5.07  3.72   -0.405     6.08

Większość serii wykazuje wyraźnie nietypowe cechy (silna skośność i / lub duża kurtoza). Gaussianizujmy każdą serię za pomocą gruboogoniastego rozkładu L Lamberta x Gaussa (= h Tukeya), stosując metody estymatora momentów ( IGMM).

library(LambertW)
ret.gauss <- Gaussianize(ret, type = "h", method = "IGMM")
colnames(ret.gauss) <- gsub(".X", "", colnames(ret.gauss))

plot(ts(ret.gauss))

wykres szeregów czasowych zwrotów gaussowskich

Wykresy szeregów czasowych pokazują znacznie mniej ogonów, a także bardziej stabilne zmiany w czasie (choć nie stałe). Ponowne obliczenie metryk w szeregach czasowych Gaussianized daje:

ret.gauss.metrics <- t(apply(ret.gauss, 2, data_metrics))
ret.gauss.metrics

##          mean    sd   min  max skewness kurtosis
## EASTEU 0.1663 0.962 -3.50 3.46   -0.193        3
## LATAM  0.1371 1.279 -3.91 3.93   -0.253        3
## CHINA  0.0933 0.734 -2.32 2.36   -0.102        3
## INDIA  0.1819 1.002 -3.35 3.78   -0.193        3
## ENERGY 0.1088 1.006 -3.03 3.18   -0.144        3
## MINING 0.1610 1.109 -3.55 3.34   -0.298        3
## GOLD   0.1241 1.537 -5.15 4.48   -0.123        3
## WATER  0.0704 0.607 -2.17 2.02   -0.157        3

IGMMAlgorytm osiągnąć dokładnie to, co zostało określone zrobić: przekształcić dane mieć kurtoza równą . Co ciekawe, wszystkie szeregi czasowe mają teraz ujemną skośność, co jest zgodne z większością literatury dotyczącej finansowych szeregów czasowych. Ważne, aby wskazać tutaj, że działa tylko marginalnie, a nie łącznie (analogicznie do ).3Gaussianize()scale()

Prosta regresja dwuwymiarowa

Aby wziąć pod uwagę wpływ gaussianizacji na OLS, należy przewidzieć powrót „EASTEU” z zwrotów „INDIA” i odwrotnie. Nawet jeśli patrzymy na samych zwrotów dziennie między na (brak opóźnione zmienne), to nadal stanowi wartość dla prognozowania giełdowego danego różnica 6h + czas między Indiami i Europą. r I N D I A , trEASTEU,trINDIA,t

layout(matrix(1:2, ncol = 2, byrow = TRUE))
plot(ret[, "INDIA"], ret[, "EASTEU"])
grid()
plot(ret.gauss[, "INDIA"], ret.gauss[, "EASTEU"])
grid()

scatterplot INDIA i EASTEU

Lewy wykres rozrzutu oryginalnej serii pokazuje, że silne wartości odstające nie wystąpiły w tych samych dniach, ale w różnych czasach w Indiach i Europie; poza tym nie jest jasne, czy chmura danych w centrum nie obsługuje korelacji ani zależności ujemnej / dodatniej. Ponieważ wartości odstające silnie wpływają na szacunki wariancji i korelacji, warto przyjrzeć się zależności z usuniętymi ciężkimi ogonami (prawy wykres rozrzutu). Tutaj wzorce są znacznie wyraźniejsze, a pozytywny związek między Indiami a rynkiem Europy Wschodniej staje się widoczny.

# try these models on your own
mod <- lm(EASTEU ~ INDIA * CHINA, data = ret)
mod.robust <- rlm(EASTEU ~ INDIA, data = ret)
mod.gauss <- lm(EASTEU ~ INDIA, data = ret.gauss)

summary(mod)
summary(mod.robust)
summary(mod.gauss)

Przyczynowość Grangera

Test przyczynowości Grangera oparty na modelu (używam do uchwycenia tygodniowego efektu codziennych transakcji) dla „EASTEU” i „INDIA” odrzuca „brak przyczynowości Grangera” dla obu kierunków.p = 5VAR(5)p=5

library(vars)  
mod.vars <- vars::VAR(ret[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars, "INDIA")$Granger


## 
##  Granger causality H0: INDIA do not Granger-cause EASTEU
## 
## data:  VAR object mod.vars
## F-Test = 3, df1 = 5, df2 = 3000, p-value = 0.02

causality(mod.vars, "EASTEU")$Granger
## 
##  Granger causality H0: EASTEU do not Granger-cause INDIA
## 
## data:  VAR object mod.vars
## F-Test = 4, df1 = 5, df2 = 3000, p-value = 0.003

Jednak w przypadku danych Gaussianized odpowiedź jest inna! Oto test może nie odrzucić H0 że „Indie czy nie Granger-przyczyna EASTEU”, ale nadal odrzuca że „EASTEU nie Granger-przyczyna India”. Tak więc dane gaussowskie potwierdzają hipotezę, że rynki europejskie napędzają rynki w Indiach następnego dnia.

mod.vars.gauss <- vars::VAR(ret.gauss[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars.gauss, "INDIA")$Granger

## 
##  Granger causality H0: INDIA do not Granger-cause EASTEU
## 
## data:  VAR object mod.vars.gauss
## F-Test = 0.8, df1 = 5, df2 = 3000, p-value = 0.5

causality(mod.vars.gauss, "EASTEU")$Granger

## 
##  Granger causality H0: EASTEU do not Granger-cause INDIA
## 
## data:  VAR object mod.vars.gauss
## F-Test = 2, df1 = 5, df2 = 3000, p-value = 0.06

Zauważ, że nie jest dla mnie jasne, która z nich jest właściwą odpowiedzią (jeśli w ogóle), ale jest to interesujące spostrzeżenie. Nie trzeba dodawać, że to całe testowanie przyczynowości zależy od tego, czy jest poprawnym modelem - czego najprawdopodobniej nie jest; ale myślę, że dobrze to ilustruje.VAR(5)

Georg M. Goerg
źródło
1

Potrzebny jest model rozkładu prawdopodobieństwa, który lepiej pasuje do danych. Czasami nie ma określonych momentów. Jednym z takich rozkładów jest rozkład Cauchy'ego. Chociaż rozkład Cauchy'ego ma medianę jako wartość oczekiwaną, nie ma stabilnej wartości średniej ani stabilnych wyższych momentów. Oznacza to, że kiedy zbiera się dane, pojawiają się rzeczywiste pomiary, które wyglądają jak wartości odstające, ale są to pomiary rzeczywiste. Na przykład, jeśli ktoś ma dwa rozkłady normalne F i G, ze średnią zero, a jeden dzieli F / G, wynik nie będzie miał pierwszego momentu i będzie rozkładem Cauchy'ego. Z przyjemnością zbieramy dane i wygląda to na OK 5, 3, 9, 6, 2, 4, 4 i obliczamy średnią, która wygląda na stabilną, wtedy nagle otrzymujemy wartość -32739876 i nasza średnia wartość staje się bez znaczenia, ale zauważ, mediana wynosi 4, stabilna. Tak jest z rozkładami o długich ogonach.

Edycja: Możesz wypróbować rozkład t Studenta z 2 stopniami swobody. Ten rozkład ma dłuższe ogony niż rozkład normalny, skośność i kurtoza są niestabilne ( Sic , nie istnieją), ale zdefiniowano średnią i wariancję, tj. Są stabilne.

Następna edycja: jedną z możliwości może być regresja Theil. W każdym razie jest to myśl, ponieważ Theil będzie działał dobrze bez względu na to, jak wyglądają ogony. Można to zrobić MLR (wielokrotna regresja liniowa z wykorzystaniem mediany nachyleń). Nigdy nie robiłem Theil dla dopasowania danych histogramu. Ale zrobiłem Theil z wariantem scyzoryka, aby ustalić przedziały ufności. Zaletą tego jest to, że Theil nie dba o to, jakie są kształty rozkładu, a odpowiedzi są ogólnie mniej stronnicze niż w przypadku OLS, ponieważ zazwyczaj OLS jest używany, gdy występuje problematyczna niezależna wariancja osi. Nie chodzi o to, że Theil jest całkowicie pozbawiony, jest to mediana nachylenia. Odpowiedzi mają również inne znaczenie, znajduje lepszą zgodność między zmiennymi zależnymi i niezależnymi, w których OLS znajduje predyktor najmniejszego błędu zmiennej zależnej,

Carl
źródło
2
Niezła informacja, dzięki. Czy znasz jakieś (dość kompaktowe) zasoby do dalszego czytania? Mam zupełnie inny problem z długim ogonem, ale myślę, że moje dane to tylko mieszanka różnych scenariuszy.
flaschenpost
Używam Matematyki, a dopasowanie rozkładów, a także zdefiniowanie rozkładów fragmentarycznych nie jest trudne w tym języku. Na przykład spójrz na to . Zasadniczo zmienne losowe dodawane są przez splot, ale w praktyce splot funkcji gęstości jest trudny. Niektóre osoby po prostu fragmentarycznie definiują funkcje gęstości dla zmieszanych zmiennych, na przykład dodając lekki wykładniczy ogon do cenzurowanego cięższego rozkładu gamma po maksymalnej wartości modelującej częstotliwość trzęsień ziemi. @flaschenpost
Carl