CVaR і вибір покриття збитків
У попередніх вправах ви бачили, що розподіли T і Gaussian KDE доволі добре описують збитки портфеля за кризовий період. Враховуючи це, який із них кращий для управління ризиками? Один зі способів обрати — вибрати розподіл, що дає найбільше покриття збитків, щоб перекрити «найгірший із найгірших» сценарій втрат.
Розподіли t і kde доступні та підігнані під портфельні losses за 2007–2008 роки (оцінені параметри t збережено в p). Ви виведете одноденну оцінку CVaR на рівні 99% для кожного розподілу; найбільша оцінка 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)