极端值与回溯检验
极端值指超过某个阈值的观测,常用于检验 VaR 等风险度量是否能够准确反映亏损风险。
您将通过计算 2009-2010 年等权重投行组合的 95% VaR(回顾:这相当于从 2010 年起的历史模拟),然后在 2007-2008 年的数据上进行回溯检验(backtesting)来探索极端值。
2009-2010 年的组合亏损已存放在 estimate_data 中,您将据此计算 95% VaR 估计值。随后,在可用的 backtest_data(2007-2008 年的组合亏损)中,找出超过该 VaR 估计的极端值。
将极端值的相对频率与 95% VaR 进行比较,最后使用茎叶图(stem plot)将这些极端值可视化。
本练习是课程的一部分
Python 中的定量风险管理
练习说明
- 使用
np.quantile()在estimate_data上计算 95% VaR。 - 以
VaR_95作为亏损阈值,在backtest_data中找出extreme_values。 - 比较
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()