Nienormalne rozkłady stóp zwrotu

Wprowadzenie do analizy portfela w Pythonie

Charlotte Werger

Data Scientist

W idealnym świecie stopy zwrotu mają rozkład normalny

Normalny rozkład stóp zwrotu S&P500

1 Źródło: Rozkład miesięcznych stóp zwrotu S&P500 z evestment.com
Wprowadzenie do analizy portfela w Pythonie

Średnia i odchylenie standardowe mogą być mylące

Dwa rozkłady o tej samej średniej i odchyleniu standardowym

1 Źródło: „An Introduction to Omega", Con Keating i William Shadwick, The Finance Development Center, 2002
Wprowadzenie do analizy portfela w Pythonie

Skośność: przechylenie w stronę ujemną

Rozkłady o różnej skośności

Wprowadzenie do analizy portfela w Pythonie

Współczynnik skośności Pearsona

$ $ $ Skewness = \frac{3(mean - median)}{\sigma} $ $ $

Zasada ogólna:

  • $ Skewness < -1 $ lub $ Skewness > 1 \Rightarrow$ Rozkład silnie skośny
  • $ -1 < Skewness < -0.5 $ lub $ 0.5 < Skewness < 1 \Rightarrow$ Rozkład umiarkowanie skośny
  • $ -0.5 < Skewness < 0.5 \Rightarrow$ Rozkład w przybliżeniu symetryczny
1 Źródło: https://brownmath.com/stat/shape.htm
Wprowadzenie do analizy portfela w Pythonie

Kurtoza: rozkład gruboogonowy

Rozkład gruboogonowy w porównaniu z rozkładem normalnym

1 Źródło: Pimco
Wprowadzenie do analizy portfela w Pythonie

Interpretacja kurtozy

„Wyższa kurtoza oznacza, że wariancja jest w większym stopniu wynikiem rzadkich ekstremalnych odchyleń niż częstych umiarkowanych."

  • Rozkład normalny ma kurtozę równą 3 i jest nazywany mezokurtycznym
  • Rozkład z kurtozą <3 to platykurtyczny: ogony krótsze i węższe, szczyt niższy i szerszy
  • Rozkład z kurtozą >3 to leptokurtyczny: ogony dłuższe i grubsze, szczyt wyższy i ostrzejszy (gruboogonowy)
1 Źródło: https://brownmath.com/stat/shape.htm
Wprowadzenie do analizy portfela w Pythonie

Obliczanie skośności i kurtozy

apple_returns=apple_price.pct_change()
apple_returns.head(3)

date
2015-01-02         NaN
2015-01-05   -0.028172
2015-01-06    0.000094
Name: AAPL, dtype: float64
apple_returns.hist()
Wprowadzenie do analizy portfela w Pythonie

Histogram stóp zwrotu Apple

Wprowadzenie do analizy portfela w Pythonie

Obliczanie skośności i kurtozy

print("mean : ", apple_returns.mean())
print("vol  : ", apple_returns.std())
print("skew : ", apple_returns.skew())
print("kurt : ", apple_returns.kurtosis())
mean :  0.0006855391415724799
vol  :  0.014459504468360529
skew :  -0.012440851735057878
kurt :  3.197244607586669
Wprowadzenie do analizy portfela w Pythonie

Czas na ćwiczenia!

Wprowadzenie do analizy portfela w Pythonie

Preparing Video For Download...