Parametrik Tahmin

Python ile Nicel Risk Yönetimi

Jamsheed Shorish

Computational Economist

Bir dağılım sınıfı

  • Kayıp dağılımı: tam olarak bilinmez
  • Olası dağılım sınıfı?
    • Dağılım sınıfı: $f(x; \theta)$ varsayalım
    • $x$ kayıptır (rastgele değişken)
    • $\theta$ bilinmeyen parametreler vektörüdür
  • Örnek: Normal dağılım
    • Parametreler: $\theta = (\mu, \sigma)$; ortalama $\mu$, standart sapma $\sigma$
  • Parametrik tahmin: verilere göre en iyi $\theta^\star$ bulunur
  • Kayıp dağılımı: $f(x,\theta^\star)$
Python ile Nicel Risk Yönetimi

Bir dağılımı uydurma

  • Hatayı en aza indiren ölçüte göre dağılımı uydur
    • Örnek: scipy.stats.norm.fit(); veriye Normal dağılım uydurma
      • Sonuç: en iyi ortalama ve standart sapma
  • Avantajlar:
    • Histogramla veri ve tahmin farkını görselleştirebilir
    • Uyum iyiliği testleri sunabilir
Python ile Nicel Risk Yönetimi

Uyum iyiliği

  • Tahmin edilen dağılım veriye ne kadar iyi uyuyor?
  • Görselleştir: portföy kayıplarının histogramını çiz

kayıp histogramı

Python ile Nicel Risk Yönetimi

Uyum iyiliği

  • Tahmin edilen dağılım veriye ne kadar iyi uyuyor?
  • Görselleştir: portföy kayıplarının histogramını çiz
  • norm.fit() ile Normal dağılım

normal dağımla kayıp histogramı

Python ile Nicel Risk Yönetimi

Uyum iyiliği

  • Tahmin edilen dağılım veriye ne kadar iyi uyuyor?
  • Görselleştir: portföy kayıplarının histogramını çiz
  • Örnek:
    • norm.fit() ile Normal dağılım
    • t.fit() ile Student t-dağılımı
    • Histogram asimetrik mi?

normal dağılımla kayıp histogramı

Python ile Nicel Risk Yönetimi

Anderson-Darling testi

  • Uyum iyiliği için istatistiksel test
    • Sıfır hipotezi: veriler Normal dağılmıştır
    • Test istatistiği critical_values değerlerinden büyükse Normal reddedilir
  • scipy.stats.anderson içe aktar
  • loss verisiyle testi hesapla
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. ]))
Python ile Nicel Risk Yönetimi

Çarpıklık

  • Çarpıklık: verinin simetrik olmama derecesi
    • Normal dağılım: simetrik

normal dağılım

Python ile Nicel Risk Yönetimi

Çarpıklık

  • Çarpıklık: verinin simetrik olmama derecesi
    • Normal dağılım: simetrik
    • Student t-dağılımı: simetrik

normal ve t dağılımları

Python ile Nicel Risk Yönetimi

Çarpıklık

  • Çarpıklık: verinin simetrik olmama derecesi
    • Normal dağılım: simetrik
    • Student t-dağılımı: simetrik
  • Çarpık Normal dağılım: asimetrik
    • Normali özel durum olarak içerir
    • Portföy verileri için yararlı; ör. kayıplar kazançlardan daha sık
    • scipy.stats içinde skewnorm olarak mevcut

normal, t ve çarpık normal dağılımlar

Python ile Nicel Risk Yönetimi

Çarpıklık testi

  • Verinin simetriden sapmasını test et: scipy.stats.skewtest
  • Sıfır hipotezi: çarpıklık yok
  • scipy.stats içinden skewtest içe aktar
  • loss verisinde testi çalıştır
    • İstatistiksel olarak anlamlıysa => çarpıklığı olan bir dağılım sınıfı kullan
from scipy.stats import skewtest

skewtest(loss)
SkewtestResult(statistic=-7.786120875514511,
pvalue=6.90978472959861e-15)
Python ile Nicel Risk Yönetimi

Hadi pratik yapalım!

Python ile Nicel Risk Yönetimi

Preparing Video For Download...