Ядерная оценка плотности

Количественное управление рисками на Python

Jamsheed Shorish

Computational Economist

Гистограмма: новый взгляд

  • Распределения факторов риска
    • Предполагаемые (например, нормальное, 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

график гауссовой ядерной оценки

Количественное управление рисками на Python

Вычисление VaR с помощью KDE

  • VaR: используем метод .resample() из gaussian_kde
  • Находим квантиль полученной выборки
  • 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...