Estimation paramétrique

Gestion quantitative des risques en Python

Jamsheed Shorish

Computational Economist

Une classe de distributions

  • Distribution des pertes : inconnue avec certitude
  • Classe de distributions possibles ?
    • Supposons une classe de distributions $f(x; \theta)$
    • $x$ est la perte (variable aléatoire)
    • $\theta$ est un vecteur de paramètres inconnus
  • Exemple : distribution normale
    • Paramètres : $\theta = (\mu, \sigma)$, moyenne $\mu$ et écart type $\sigma$
  • Estimation paramétrique : trouver le « meilleur » $\theta^\star$ à partir des données
  • Distribution des pertes : $f(x,\theta^\star)$
Gestion quantitative des risques en Python

Ajuster une distribution

  • Ajuster une distribution selon un critère minimisant l'erreur
    • Exemple : scipy.stats.norm.fit(), ajuster une distribution normale aux données
      • Résultat : moyenne et écart type ajustés de façon optimale
  • Avantages :
    • Peut visualiser l'écart entre données et estimation avec un histogramme
    • Peut fournir des tests de qualité d'ajustement
Gestion quantitative des risques en Python

Qualité de l'ajustement

  • Dans quelle mesure la distribution estimée correspond-elle aux données ?
  • Visualiser : tracer l'histogramme des pertes du portefeuille

image d'histogramme des pertes

Gestion quantitative des risques en Python

Qualité de l'ajustement

  • Dans quelle mesure la distribution estimée correspond-elle aux données ?
  • Visualiser : tracer l'histogramme des pertes du portefeuille
  • Distribution normale avec norm.fit()

image d'histogramme des pertes avec distribution normale

Gestion quantitative des risques en Python

Qualité de l'ajustement

  • Dans quelle mesure la distribution estimée correspond-elle aux données ?
  • Visualiser : tracer l'histogramme des pertes du portefeuille
  • Exemple :
    • Distribution normale avec norm.fit()
    • Distribution t de Student avec t.fit()
    • Histogramme asymétrique ?

image d'histogramme des pertes avec distribution normale

Gestion quantitative des risques en Python

Test d'Anderson-Darling

  • Test statistique de qualité de l'ajustement
    • Hypothèse nulle : les données suivent une loi normale
    • La statistique de test rejette la normale si elle dépasse critical_values
  • Importer scipy.stats.anderson
  • Calculer le résultat du test avec les données loss
from scipy.stats import anderson

anderson(loss)
AndersonResult(statistic=11.048641503898523,
critical_values=array([0.57 , 0.649, 0.779, 0.909, 1.081]),
significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))
Gestion quantitative des risques en Python

Asymétrie

  • Asymétrie : degré selon lequel les données ne sont pas distribuées symétriquement
    • Distribution normale : symétrique

distribution normale

Gestion quantitative des risques en Python

Asymétrie

  • Asymétrie : degré selon lequel les données ne sont pas distribuées symétriquement
    • Distribution normale : symétrique
    • Distribution t de Student : symétrique

distributions normale et t

Gestion quantitative des risques en Python

Asymétrie

  • Asymétrie : degré selon lequel les données ne sont pas distribuées symétriquement
    • Distribution normale : symétrique
    • Distribution t de Student : symétrique
  • Distribution normale asymétrique : asymétrique
    • Contient la normale comme cas particulier
    • Utile pour des données de portefeuille, p. ex. pertes plus fréquentes que gains
    • Offerte dans scipy.stats sous skewnorm

distributions normale, t et normale asymétrique

Gestion quantitative des risques en Python

Tester l'asymétrie

  • Tester l'éloignement par rapport à une distribution symétrique : scipy.stats.skewtest
  • Hypothèse nulle : pas d'asymétrie
  • Importer skewtest de scipy.stats
  • Calculer le résultat du test sur les données loss
    • Si significatif : utiliser une classe de distributions avec asymétrie
from scipy.stats import skewtest

skewtest(loss)
SkewtestResult(statistic=-7.786120875514511,
pvalue=6.90978472959861e-15)
Gestion quantitative des risques en Python

Passons à la pratique !

Gestion quantitative des risques en Python

Preparing Video For Download...