Jádrový odhad hustoty

Kvantitativní řízení rizik v Pythonu

Jamsheed Shorish

Computational Economist

Histogram znovu

  • Rozdělení rizikových faktorů
    • Předpokládaná (např. normální, T atd.)
    • Fitovaná (parametrický odhad, simulace Monte Carlo)
    • Ignorovaná (historická simulace)
  • Skutečná data: histogram
  • Jak reprezentovat histogram pravděpodobnostním rozdělením?
    • Vyhlazení dat pomocí filtrace
    • Neparametrický odhad

histogram ztrát

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu

osy histogramu

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí

obrázek hromadících se pozorování

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí

obrázek hromadících se pozorování

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí

obrázek hromadících se pozorování

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí
  • Výběr konkrétní ztráty portfolia

ztráty a vybraná ztráta označená šipkou

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí
  • Výběr konkrétní ztráty portfolia
    • Prozkoumání blízkých ztrát

jádrové okno překryté přes pozorování

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí
  • Výběr konkrétní ztráty portfolia
    • Prozkoumání blízkých ztrát
    • Vytvoření „váženého průměru" ztrát
  • Jádro: volba filtru; určuje „okno"

vážený průměr z jádra zobrazený na obrázku

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí
  • Výběr konkrétní ztráty portfolia
    • Prozkoumání blízkých ztrát
    • Vytvoření „váženého průměru" ztrát
  • Jádro: volba filtru; určuje „okno"
    • Přesunutí okna na jinou ztrátu

obrázek druhé polohy jádra

Kvantitativní řízení rizik v Pythonu

Vyhlazování dat

  • Filtr: vyhlazení „nerovností" histogramu
  • Pozorování se časem hromadí
  • Výběr konkrétní ztráty portfolia
    • Prozkoumání blízkých ztrát
    • Vytvoření „váženého průměru" ztrát
  • Jádro: volba filtru; určuje „okno"
    • Přesunutí okna na jinou ztrátu
  • Jádrový odhad hustoty: hustota pravděpodobnosti

obrázek jádrového odhadu hustoty

Kvantitativní řízení rizik v Pythonu

Gaussovo jádro

  • Spojité jádro
  • Váží všechna pozorování podle vzdálenosti od středu
  • Obecně: k dispozici je mnoho různých jader
    • Využití v analýze časových řad
    • Využití ve zpracování signálů

obrázek Gaussova jádra

Kvantitativní řízení rizik v Pythonu

KDE v Pythonu

from scipy.stats import gaussian_kde

kde = guassian_kde(losses)
loss_range = np.linspace(np.min(losses), np.max(losses), 1000)
plt.plot(loss_range, kde.pdf(loss_range))
  • Vizualizace: funkce hustoty pravděpodobnosti z KDE fitu

graf gaussovského KDE odhadu

Kvantitativní řízení rizik v Pythonu

Výpočet VaR pomocí KDE

  • VaR: použijte metodu gaussian_kde .resample()
  • Nalezení kvantilu výsledného vzorku
  • CVaR: očekávaná hodnota jako dříve, ale
    • gaussian_kde nemá metodu .expect() => integrál vypočítejte ručně
    • speciální metoda .expect() připravena pro cvičení
sample = kde.resample(size = 1000)

VaR_99 = np.quantile(sample, 0.99)
print("VaR_99 from KDE: ", VaR_99)
VaR_99 from KDE: 0.08796423698448601
Kvantitativní řízení rizik v Pythonu

Let's practice!

Kvantitativní řízení rizik v Pythonu

Preparing Video For Download...