НачатьНачать бесплатно

CVaR и выбор покрытия убытков

В предыдущих упражнениях вы убедились, что оба распределения — T и Gaussian KDE — достаточно хорошо описывают портфельные убытки в кризисный период. Какое из них лучше подходит для управления рисками? Один из способов выбора — остановиться на распределении, которое даёт наибольшее покрытие убытков и тем самым учитывает «наихудший из худших сценариев».

Распределения t и kde доступны и подогнаны под портфельные losses за 2007–2008 годы (подобранные параметры t хранятся в p). Вы вычислите однодневную оценку 99% CVaR для каждого распределения; наибольшая из оценок CVaR будет считаться «наиболее консервативным» резервным размером, покрывающим ожидаемые убытки, превышающие 99% VaR.

Экземпляру kde специально для этого упражнения добавлен метод .expect() для вычисления ожидаемого значения, необходимого при расчёте CVaR.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Найдите 99% VaR с помощью np.quantile(), применённой к случайным выборкам из распределений t и kde.
  • Вычислите интеграл, необходимый для оценки CVaR, используя метод .expect() для каждого распределения.
  • Найдите и выведите оценки 99% CVaR для обоих распределений.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Find the VaR as a quantile of random samples from the distributions
VaR_99_T   = np.quantile(t.rvs(size=1000, *p), ____)
VaR_99_KDE = np.quantile(kde.resample(size=1000), ____)

# Find the expected tail losses, with lower bounds given by the VaR measures
integral_T   = t.____(lambda x: x, args = (p[0],), loc = p[1], scale = p[2], lb = ____)
integral_KDE = kde.____(lambda x: x, lb = ____)

# Create the 99% CVaR estimates
CVaR_99_T   = (1 / (1 - ____)) * integral_T
CVaR_99_KDE = (1 / (1 - ____)) * integral_KDE

# Display the results
print("99% CVaR for T: ", CVaR_99_T, "; 99% CVaR for KDE: ", CVaR_99_KDE)
Редактировать и запускать код