Оцінювання густини ядром

Кількісне управління ризиками в Python

Jamsheed Shorish

Computational Economist

Погляд на гістограму ще раз

  • Розподіли факторів ризику
    • Припущені (напр., Normal, T тощо)
    • Оцінені (параметрична оцінка, моделювання Монте‑Карло)
    • Ігноровані (історичне моделювання)
  • Фактичні дані: гістограма
  • Як подати гістограму як розподіл імовірності?
    • Згладити дані за допомогою фільтрації
    • Непараметрична оцінка

гістограма збитків

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми

осі гістограми

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом

зображення накопичення спостережень

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом

зображення накопичення спостережень

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом

зображення накопичення спостережень

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом
  • Оберіть конкретний збиток портфеля

збитки і вибраний збиток зі стрілкою

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом
  • Оберіть конкретний збиток портфеля
    • Розгляньте сусідні збитки

вікно ядра поверх спостережень

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом
  • Оберіть конкретний збиток портфеля
    • Розгляньте сусідні збитки
    • Сформуйте «зважене середнє» збитків
  • Ядро: вибір фільтра; задає «вікно»

зважене середнє з ядра на зображенні

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом
  • Оберіть конкретний збиток портфеля
    • Розгляньте сусідні збитки
    • Сформуйте «зважене середнє» збитків
  • Ядро: вибір фільтра; задає «вікно»
    • Перемістіть вікно до іншого збитку

друге положення ядра

Кількісне управління ризиками в Python

Згладжування даних

  • Фільтр: згладжує «горби» гістограми
  • Спостереження накопичуються з часом
  • Оберіть конкретний збиток портфеля
    • Розгляньте сусідні збитки
    • Сформуйте «зважене середнє» збитків
  • Ядро: вибір фільтра; задає «вікно»
    • Перемістіть вікно до іншого збитку
  • Оцінка густини ядром: густина ймовірності

зображення оцінки густини ядром

Кількісне управління ризиками в Python

Гаусове ядро

  • Неперервне ядро
  • Зважує всі спостереження за відстанню від центра
  • Загалом: доступно багато різних ядер
    • Використовують в аналізі часових рядів
    • Використовують у обробці сигналів

зображення гаусового ядра

Кількісне управління ризиками в Python

KDE в Python

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))
  • Візуалізація: функція густини ймовірності з підгонки KDE

графік оцінки gaussian kde

Кількісне управління ризиками в Python

Пошук VaR за допомогою KDE

  • VaR: використайте метод gaussian_kde .resample()
  • Знайдіть квантиль отриманої вибірки
  • CVaR: очікуване значення, як і раніше, але
    • у gaussian_kde немає .expect() => інтеграл обчисліть вручну
    • для вправи підготовлено спеціальний метод .expect()
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
Кількісне управління ризиками в Python

Давайте потренуємось!

Кількісне управління ризиками в Python

Preparing Video For Download...