Экстремальные значения и бэктестирование
Экстремальные значения — это значения, превышающие заданный порог. Они используются для проверки того, насколько точно такие меры риска, как VaR, отражают реальный риск потерь.
Вы изучите экстремальные значения: вычислите VaR на уровне 95% для равновзвешенного портфеля инвестиционных банков за 2009–2010 годы (напомним, что это эквивалентно историческому моделированию начиная с 2010 года), а затем выполните бэктестирование на данных за 2007–2008 годы.
Потери портфеля за 2009–2010 годы доступны в estimate_data — на их основе вы рассчитаете оценку VaR на уровне 95%. Затем найдите экстремальные значения, превышающие эту оценку VaR, среди потерь портфеля за 2007–2008 годы, которые хранятся в backtest_data.
Сравните относительную частоту экстремальных значений с уровнем VaR 95%, а затем визуализируйте экстремальные значения с помощью стемплота.
Это упражнение является частью курса
Количественное управление рисками на Python
Инструкции к упражнению
- Вычислите VaR на уровне 95% для
estimate_dataс помощьюnp.quantile(). - Найдите
extreme_valuesизbacktest_data, используяVaR_95в качестве порога потерь. - Сравните относительную частоту
extreme_valuesс оценкойVaR_95. Совпадают ли они? - Постройте стемплот для
extreme_values, чтобы показать, как крупные отклонения концентрировались в период кризиса.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Compute the 95% VaR on 2009-2010 losses
VaR_95 = ____.____(estimate_data, 0.95)
# Find backtest_data exceeding the 95% VaR
extreme_values = backtest_data[____ > VaR_95]
# Compare the fraction of extreme values for 2007-2008 to the Var_95 estimate
print("VaR_95: ", VaR_95, "; Backtest: ", len(____) / len(backtest_data) )
# Plot the extreme values and look for clustering
plt.stem(extreme_values.index, ____)
plt.ylabel("Extreme values > VaR_95"); plt.xlabel("Date")
plt.show()