Estimare parametrică

Managementul Cantitativ al Riscului în Python

Jamsheed Shorish

Computational Economist

O clasă de distribuții

  • Distribuția pierderilor: necunoscută cu certitudine
  • Clasa de distribuții posibile?
    • Presupunem clasa $f(x; \theta)$
    • $x$ este pierderea (variabilă aleatoare)
    • $\theta$ este vectorul de parametri necunoscuți
  • Exemplu: distribuție normală
    • Parametri: $\theta = (\mu, \sigma)$, media $\mu$ și deviația standard $\sigma$
  • Estimare parametrică: găsirea celui mai bun $\theta^\star$ dat de date
  • Distribuția pierderilor: $f(x,\theta^\star)$
Managementul Cantitativ al Riscului în Python

Ajustarea unei distribuții

  • Ajustați distribuția conform criteriilor de minimizare a erorii
    • Exemplu: scipy.stats.norm.fit(), ajustarea distribuției normale la date
      • Rezultat: medie și deviație standard ajustate optim
  • Avantaje:
    • Se poate vizualiza diferența dintre date și estimare prin histogramă
    • Permite aplicarea testelor de bunătate a ajustării
Managementul Cantitativ al Riscului în Python

Bunătatea ajustării

  • Cât de bine se potrivește distribuția estimată cu datele?
  • Vizualizare: histograma pierderilor din portofoliu

imaginea histogramei pierderilor

Managementul Cantitativ al Riscului în Python

Bunătatea ajustării

  • Cât de bine se potrivește distribuția estimată cu datele?
  • Vizualizare: histograma pierderilor din portofoliu
  • Distribuție normală cu norm.fit()

imaginea histogramei pierderilor cu distribuție normală

Managementul Cantitativ al Riscului în Python

Bunătatea ajustării

  • Cât de bine se potrivește distribuția estimată cu datele?
  • Vizualizare: histograma pierderilor din portofoliu
  • Exemplu:
    • Distribuție normală cu norm.fit()
    • Distribuție t-Student cu t.fit()
    • Histogramă asimetrică?

imaginea histogramei pierderilor cu distribuție normală

Managementul Cantitativ al Riscului în Python

Testul Anderson-Darling

  • Test statistic al bunătății ajustării
    • Ipoteza nulă: datele urmează o distribuție normală
    • Statistica de test respinge normalitatea dacă depășește critical_values
  • Importați scipy.stats.anderson
  • Calculați rezultatul testului pe datele 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. ]))
Managementul Cantitativ al Riscului în Python

Asimetrie

  • Asimetrie: gradul în care datele nu sunt distribuite simetric
    • Distribuție normală: simetrică

distribuție normală

Managementul Cantitativ al Riscului în Python

Asimetrie

  • Asimetrie: gradul în care datele nu sunt distribuite simetric
    • Distribuție normală: simetrică
    • Distribuție t-Student: simetrică

distribuții normală și t

Managementul Cantitativ al Riscului în Python

Asimetrie

  • Asimetrie: gradul în care datele nu sunt distribuite simetric
    • Distribuție normală: simetrică
    • Distribuție t-Student: simetrică
  • Distribuție normală asimetrică: asimetrică
    • Conține distribuția normală ca caz particular
    • Utilă pentru date de portofoliu, unde pierderile sunt mai frecvente decât câștigurile
    • Disponibilă în scipy.stats ca skewnorm

distribuții normală, t și normală asimetrică

Managementul Cantitativ al Riscului în Python

Testarea asimetriei

  • Testați distanța față de o distribuție simetrică: scipy.stats.skewtest
  • Ipoteza nulă: fără asimetrie
  • Importați skewtest din scipy.stats
  • Calculați rezultatul testului pe datele loss
    • Semnificativ statistic => utilizați o clasă de distribuții cu asimetrie
from scipy.stats import skewtest

skewtest(loss)
SkewtestResult(statistic=-7.786120875514511,
pvalue=6.90978472959861e-15)
Managementul Cantitativ al Riscului în Python

Să exersăm!

Managementul Cantitativ al Riscului în Python

Preparing Video For Download...