Parametrische schatting

Kwantitatief risicobeheer in Python

Jamsheed Shorish

Computational Economist

Een klasse van verdelingen

  • Verliesverdeling: niet zeker bekend
  • Klasse van mogelijke verdelingen?
    • Stel klasse van verdelingen $f(x; \theta)$
    • $x$ is verlies (toevalsvariabele)
    • $\theta$ is vector met onbekende parameters
  • Voorbeeld: normale verdeling
    • Parameters: $\theta = (\mu, \sigma)$, gemiddelde $\mu$ en standaardafwijking $\sigma$
  • Parametrische schatting: vind ‘beste’ $\theta^\star$ gegeven data
  • Verliesverdeling: $f(x,\theta^\star)$
Kwantitatief risicobeheer in Python

Een verdeling fitten

  • Pas verdeling aan op basis van foutminimalisatie
    • Voorbeeld: scipy.stats.norm.fit(), normale verdeling fitten op data
      • Resultaat: optimaal gemiddelde en standaardafwijking
  • Voordelen:
    • Verschil tussen data en schatting visualiseren met histogram
    • Goodness-of-fit-tests mogelijk
Kwantitatief risicobeheer in Python

Goodness-of-fit

  • Hoe goed past een geschatte verdeling bij de data?
  • Visualiseren: histogram van portefeuilleverliezen plotten

histogram van verliezen

Kwantitatief risicobeheer in Python

Goodness-of-fit

  • Hoe goed past een geschatte verdeling bij de data?
  • Visualiseren: histogram van portefeuilleverliezen plotten
  • Normale verdeling met norm.fit()

histogram van verliezen met normale verdeling

Kwantitatief risicobeheer in Python

Goodness-of-fit

  • Hoe goed past een geschatte verdeling bij de data?
  • Visualiseren: histogram van portefeuilleverliezen plotten
  • Voorbeeld:
    • Normale verdeling met norm.fit()
    • t-verdeling met t.fit()
    • Asymmetrisch histogram?

histogram van verliezen met normale verdeling

Kwantitatief risicobeheer in Python

Anderson-Darling-test

  • Statistische goodness-of-fit-test
    • Toets nulhypothese: data zijn normaal verdeeld
    • Verwerp normaalverdeling als toetsstatistiek > critical_values
  • Importeer scipy.stats.anderson
  • Bereken testresultaat met loss-data
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. ]))
Kwantitatief risicobeheer in Python

Scheefheid

  • Scheefheid: mate van asymmetrie in de verdeling
    • Normale verdeling: symmetrisch

normale verdeling

Kwantitatief risicobeheer in Python

Scheefheid

  • Scheefheid: mate van asymmetrie in de verdeling
    • Normale verdeling: symmetrisch
    • t-verdeling: symmetrisch

normale en t-verdelingen

Kwantitatief risicobeheer in Python

Scheefheid

  • Scheefheid: mate van asymmetrie in de verdeling
    • Normale verdeling: symmetrisch
    • t-verdeling: symmetrisch
  • Scheve normale verdeling: asymmetrisch
    • Bevat normale als speciaal geval
    • Nuttig voor portefeuillegegevens, bv. verliezen vaker dan winsten
    • In scipy.stats als skewnorm

normale, t- en scheve normale verdelingen

Kwantitatief risicobeheer in Python

Scheefheid testen

  • Test afstand tot symmetrische verdeling: scipy.stats.skewtest
  • Nulhypothese: geen scheefheid
  • Importeer skewtest uit scipy.stats
  • Bereken test op loss-data
    • Statistisch significant => gebruik verdelingsklasse met scheefheid
from scipy.stats import skewtest

skewtest(loss)
SkewtestResult(statistic=-7.786120875514511,
pvalue=6.90978472959861e-15)
Kwantitatief risicobeheer in Python

Laten we oefenen!

Kwantitatief risicobeheer in Python

Preparing Video For Download...