Distribution non normale des rendements

Introduction à l'analyse de portefeuille en Python

Charlotte Werger

Data Scientist

Dans un monde idéal, 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 se fier à la moyenne et à l'écart type peut 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 : penchée 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 pratique :

  • $ Skewness < -1 $ ou $ Skewness > 1 \Rightarrow$ Distribution fortement asymétrique
  • $ -1 < Skewness < -0.5 $ ou $ 0.5 < Skewness < 1 \Rightarrow$ Distribution modérément asymétrique
  • $ -0.5 < Skewness < 0.5 \Rightarrow$ Distribution approximativement symétrique
1 Source : https://brownmath.com/stat/shape.htm
Introduction à l'analyse de portefeuille en Python

Kurtosis : distribution à fortes queues

Distribution à fortes queues comparée à la normale

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

Interpréter la kurtosis

« Plus la kurtosis est élevée, plus la variance provient d'écarts extrêmes rares plutôt que d'écarts modestes fréquents. »

  • Une distribution normale a une kurtosis exactement de 3 (mésocurtique).
  • Une distribution avec kurtosis <3 est dite platicurtique : queues plus courtes et fines, sommet central plus bas et large.
  • Une distribution avec kurtosis >3 est dite leptocurtique : queues plus longues et épaisses, sommet central plus haut et aigu (fortes queues).
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...