Volatilité et valeurs extrêmes

Gestion quantitative des risques en Python

Jamsheed Shorish

Computational Economist

Hypothèses du test de Chow

  • Test de Chow : identifier la significativité d'une rupture structurelle potentielle
  • Nécessite : point de rupture défini à l'avance
  • Nécessite : relation linéaire (p. ex. modèle factoriel) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

Image de la croissance de la population chinoise avec point de rupture indiqué

Gestion quantitative des risques en Python

Indicateurs de rupture structurelle

  • La visualisation de la tendance peut ne pas révéler le point de rupture
  • Alternative : analyser la volatilité plutôt que la tendance
    • Le changement structurel s'accompagne souvent d'une plus grande incertitude ⇒ volatilité
    • Permet d'envisager des modèles plus riches (p. ex. modèles à volatilité stochastique)

Image de volatilité mensuelle avec points de rupture possibles

Gestion quantitative des risques en Python

Volatilité en fenêtre glissante

  • Fenêtre glissante : calculer la volatilité dans le temps et détecter les changements
  • Rappel : fenêtre glissante de 30 jours

    • Créer la fenêtre glissante avec la méthode ".rolling()"
    • Calculer la volatilité sur la fenêtre (supprimer les dates indisponibles)
    • Calculer la statistique récapitulative utile, p. ex. .mean(), .min(), etc.

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Gestion quantitative des risques en Python

Volatilité en fenêtre glissante

  • Visualiser la volatilité obtenue (variance ou écart type)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

Image de la volatilité moyenne mensuelle

Gestion quantitative des risques en Python

Volatilité en fenêtre glissante

  • Visualiser la volatilité obtenue (variance ou écart type)
  • Fortes variations de volatilité ⇒ point(s) de rupture possible(s)
  • Utiliser les points proposés dans un modèle linéaire de volatilité
    • Variante du test de Chow
  • Indications pour appliquer p. ex. ARCH, modèles à volatilité stochastique
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

Image de variation en pourcentage de la volatilité mensuelle

Gestion quantitative des risques en Python

Valeurs extrêmes

  • VaR, CVaR : perte maximale, perte moyenne attendue au-delà d'un niveau de confiance donné
  • Visualiser les variations de perte maximale en traçant la VaR ?
    • Utile pour de grands jeux de données
    • Petits jeux de données : information insuffisante
  • Alternative : repérer les pertes dépassant un seuil
  • Exemple : $\text{VaR}_{95}$ est la perte maximale 95 % du temps
    • Donc 5 % du temps, les pertes dépassent $\text{VaR}_{95}$
  • Backtesting : utiliser des données passées ex post pour évaluer l'estimation du risque
    • Très utilisé en gestion des risques d'entreprise
Gestion quantitative des risques en Python

Backtesting

  • Supposons $\text{VaR}_{95} = 0.03$
  • Les pertes dépassant 3 % sont alors des valeurs extrêmes
  • Backtesting : environ 5 % (100 % − 95 %) des pertes passées devraient dépasser 3 %
    • Plus de 5 % : distribution à queues plus larges (« plus épaisses »)
    • Moins de 5 % : distribution à queues plus fines
  • CVaR pour le backtesting : rend mieux compte de la queue que la VaR

Image des pertes et seuil de VaR à 95 %

Gestion quantitative des risques en Python

Passons à la pratique !

Gestion quantitative des risques en Python

Preparing Video For Download...