Distribution non normale des rendements

Introduction à l’analyse de portefeuille en Python

Charlotte Werger

Data Scientist

Dans un monde parfait, les rendements suivent une loi normale

Distribution normale des rendements du S&P500

1 Source : Distribution des rendements mensuels du S&P500, evestment.com
Introduction à l’analyse de portefeuille en Python

Mais moyenne et écart-type peuvent tromper

Deux distributions avec la même moyenne et le même écart-type

1 Source : « An Introduction to Omega », Con Keating et William Shadwick, The Finance Development Center, 2002
Introduction à l’analyse de portefeuille en Python

Asymétrie : biais vers le négatif

Distributions avec asymétrie différente

Introduction à l’analyse de portefeuille en Python

Coefficient d’asymétrie de Pearson

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

Règle empirique :

  • $ Skewness < -1 $ ou $ Skewness > 1 \Rightarrow$ Asymétrie forte
  • $ -1 < Skewness < -0.5 $ ou $ 0.5 < Skewness < 1 \Rightarrow$ Asymétrie modérée
  • $ -0.5 < Skewness < 0.5 \Rightarrow$ Approximativement symétrique
1 Source : https://brownmath.com/stat/shape.htm
Introduction à l’analyse de portefeuille en Python

Kurtosis : distribution à queues épaisses

Distribution à queues épaisses comparée à la normale

1 Source : Pimco
Introduction à l’analyse de portefeuille en Python

Interpréter la kurtosis

“Une kurtosis plus élevée signifie qu’une plus grande part de la variance vient de déviations extrêmes rares, plutôt que de déviations modérées fréquentes.”

  • Une loi normale a une kurtosis exactement égale à 3 (mésocurtique)
  • Une loi avec kurtosis <3 est platycurtique : queues plus courtes et fines, pic central plus bas et large.
  • Une loi avec kurtosis >3 est leptocurtique : queues plus longues et épaisses, pic central plus haut et aigu (queues épaisses)
1 Source : https://brownmath.com/stat/shape.htm
Introduction à l’analyse de portefeuille en Python

Calculer l’asymétrie et la kurtosis

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()
Introduction à l’analyse de portefeuille en Python

Histogramme des rendements récents d’Apple

Introduction à l’analyse de portefeuille en Python

Calculer l’asymétrie et la kurtosis

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
Introduction à l’analyse de portefeuille en Python

Passons à la pratique !

Introduction à l’analyse de portefeuille en Python

Preparing Video For Download...