Mesurer le risque d'un portefeuille

Introduction à l'analyse de portefeuille en Python

Charlotte Werger

Data Scientist

Risque d'un portefeuille

  • Investir comporte des risques : les actifs individuels montent ou descendent
  • Le rendement attendu est une variable aléatoire
  • La dispersion des rendements autour de la moyenne se mesure par la variance $\sigma^2$, un indicateur courant de volatilité
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Le risque comme exercice d'équilibre

Introduction à l'analyse de portefeuille en Python

Variance

$$

  • La variance d'un actif varie : certains ont plus ou moins de dispersion autour de la moyenne
  • La variance d'un portefeuille n'est pas simplement la somme pondérée des variances des actifs sous‑jacents
  • Comme les rendements des actifs sont corrélés, le calcul se complique

Distributions à variance élevée et faible

Introduction à l'analyse de portefeuille en Python

Lien entre variance, corrélation et risque du portefeuille

$$

  • La corrélation entre les actifs 1 et 2, notée $\rho_{1,2}$, indique dans quelle mesure ils évoluent ensemble
  • La variance du portefeuille tient compte des variances des actifs ($\sigma_1^2, \sigma_2^2, etc$), des poids dans le portefeuille ($w_1, w_2$) et de leur corrélation mutuelle
  • L'écart‑type ($\sigma$) est la racine carrée de la variance ($\sigma^2$) ; tous deux mesurent la volatilité
Introduction à l'analyse de portefeuille en Python

Calculer la variance d'un portefeuille

$$ Formule de la variance de portefeuille

  • $\rho_{1,2} \sigma_1 \sigma_2$ s'appelle la covariance entre les actifs 1 et 2
  • La covariance s'écrit aussi $ \sigma_{1,2} $
  • Ce qui permet d'écrire :

Formule de la variance de portefeuille réécrite

Introduction à l'analyse de portefeuille en Python

Réécrire la variance du portefeuille, en plus court

Formule de la variance de portefeuille

  • On peut la réécrire en notation matricielle, plus pratique en code :

Variance de portefeuille en notation matricielle

  • En mots, à calculer en python :

    Variance du portefeuille = Poids transposés × (Matrice de covariance × Poids)

Introduction à l'analyse de portefeuille en Python

Variance de portefeuille en python

price_data.head(2)

ticker        AAPL       FB        GE       GM       WMT
date                    
2018-03-21    171.270    169.39    13.88    37.58    88.18
2018-03-22    168.845    164.89    13.35    36.35    87.14
# Calculate daily returns from prices
daily_returns = df.pct_change()
# Construct a covariance matrix for the daily returns data
cov_matrix_d = daily_returns.cov()
Introduction à l'analyse de portefeuille en Python

Variance de portefeuille en python

# Construct a covariance matrix from the daily_returns
cov_matrix_d = (daily_returns.cov())*250
print (cov_matrix_d)

        AAPL          FB          GE          GM          WMT                    
AAPL    0.053569    0.026822    0.013466    0.018119    0.010798
FB      0.026822    0.062351    0.015298    0.017250    0.008765
GE      0.013466    0.015298    0.045987    0.021315    0.009513
GM      0.018119    0.017250    0.021315    0.058651    0.011894
WMT     0.010798    0.008765    0.009513    0.011894    0.041520
weights = np.array([0.2, 0.2, 0.2, 0.2, 0.2])
Introduction à l'analyse de portefeuille en Python

Variance de portefeuille en python

# Calculate the variance with the formula
port_variance = np.dot(weights.T, np.dot(cov_matrix_a, weights))
print (port_variance)

0.022742232726360567
# Just converting the variance float into a percentage
print(str(np.round(port_variance, 3) * 100) + '%')

2.3%
port_stddev = np.sqrt(np.dot(weights.T, np.dot(cov_matrix_a, weights)))
print(str(np.round(port_stddev, 3) * 100) + '%')
15.1%
Introduction à l'analyse de portefeuille en Python

Passons à la pratique !

Introduction à l'analyse de portefeuille en Python

Preparing Video For Download...