欢迎来到现实检查:VaR 回测 (Backtesting)

你好!你已经学会如何计算风险价值 (Value at Risk, VaR) 了。这是一个强大的工具,但我们如何知道自己的 VaR 模型是否真的有效呢?这就是回测 (Backtesting) 的作用。你可以把回测想像成风险模型的“成绩单”。如果你的模型预测一年只会发生一次亏损超过 100 万美元的情况,但实际上每周都会发生,那显然模型出了问题。在本章中,我们将学习如何通过统计数据来证明模型是否可靠,或是它是否需要彻底重整。

别担心,如果刚开始觉得统计内容有点多,请放轻松! 我们会将数学运算拆解成简单的步骤,并利用容易记忆的类比来帮助你理解。

1. 到底什么是回测?

回测是一个将投资组合的实际每日盈亏 (P&L) 与模型产生的 VaR 估计值进行对比的过程。

当实际亏损大于 VaR 估计值时,我们称之为一个异常值 (Exception)(或称为超越值,Exceedance)。例如,如果你的 95% 置信水平的 1 日 VaR 为 100,000 美元,而你今天亏损了 120,000 美元,这就产生了一个异常值。

核心概念:异常值的频率

如果我们使用 95% 的置信水平,我们预期会有 5% 的时间出现异常值。如果我们观察 100 天的数据,我们预期会出现大约 5 次异常值。

  • 异常值太多?代表模型低估了风险(太过乐观)。
  • 异常值太少?代表模型高估了风险(太过保守)。

快速回顾: 回测能告诉我们,模型“预测”的坏日子是否与“实际”发生的坏日子相符。

2. Kupiec POF (失败比例) 测试

测试频率最常见的方法是 Kupiec 测试。它使用二项分布 (Binomial Distribution),因为每一天只有两种结果:“成功”(没有异常值)或“失败”(发生异常值)。

数学逻辑(简化版)

我们使用概似比 (Likelihood Ratio, LR) 测试来检查观察到的失败次数 \( x \) 是否与预期的失败次数 \( N \times p \) 显著不同。

Kupiec LR 测试的公式为:
\( LR_{uc} = -2 \ln \left[ (1-p)^{N-x} p^x \right] + 2 \ln \left[ (1-\frac{x}{N})^{N-x} (\frac{x}{N})^x \right] \)

等等!别被这个公式吓到了。 在考试中,你主要需要理解的是,这个测试检查的是无条件覆盖率 (Unconditional Coverage)。它只关心失败的总次数,而不关心它们发生的时间点。

你知道吗?

Kupiec 测试被称为“无条件覆盖率”测试,是因为它不在乎 10 个异常值是连续发生的,还是分散在一年内出现。它只管把总数加起来!

3. 回测中的错误:第一型与第二型错误

就像在法庭上一样,我们在评估 VaR 模型时也可能犯下两类错误。想像模型正在受审:

第一型错误 (Type I Error): 拒绝了一个好的模型。
类比: 即使没有火灾,烟雾报警器也响了。你因为一次“误报”而把一个功能正常的报警器丢掉。

第二型错误 (Type II Error): 未能拒绝一个坏的模型。
类比: 房子着火了,但烟雾报警器却保持沉默。在风险管理中,这要危险得多!

重点总结: 这是一种权衡。如果你让拒绝模型的门槛变高(变得非常宽容),你就增加了犯下第二型错误(让坏模型蒙混过关)的机率。

4. 巴塞尔协议的“红绿灯”系统

为了保持标准化,巴塞尔委员会创建了一种简单的方法,根据 99% VaR 模型在 250 个交易日(一年)内观察到的异常值数量,将回测结果分类。

  • 绿灯区 (0 到 4 次异常): 模型被认为是准确的。没有处罚。
  • 黄灯区 (5 到 9 次异常): 模型“可能”还可以,但值得怀疑。监管机构可能会提高你的资本要求。
  • 红灯区 (10 次以上异常): 模型已失效。你将面临自动处罚,并必须立即修复模型。

记忆小撇步: 想像交通信号灯。
绿灯 = 通行。
黄灯 = 减速并保持警惕。
红灯 = 停止!模型正在失效。

5. 独立性与丛聚性:Christoffersen 测试

还记得我们说过 Kupiec 测试只关心总数吗?那是它的弱点。在现实世界中,由于市场波动,异常值通常会呈现“丛聚 (Clustering)”现象。

为什么丛聚性很糟?

如果这 5 次异常值分散在一年中,你的模型可能还过得去。但如果这 5 次异常值都发生在同一个星期,说明你的模型未能适应不断变化的市场状况。这就像一个气象 App 无法预测飓风来临的每一天——它不仅是错的,而且在最关键的时候错了。

Christoffersen 独立性测试

此测试专门检查“今天的异常值”是否取决于“昨天是否出现过异常值”。

  • 如果异常值是独立的,它们应该是随机出现的。
  • 如果异常值是丛聚的,代表模型遗漏了一些重要的东西(例如波动率自相关性)。

条件覆盖率 (Conditional Coverage): 当你结合 Kupiec 测试(频率)与 Christoffersen 测试(独立性)时,就得到了“条件覆盖率”测试。这是回测领域的黄金标准。

6. 常见陷阱与避免错误

在学习回测时,学生常在这些地方跌倒:

1. 混淆置信水平: 如果 VaR 是在 99% 的水平,你预期的异常值会比 95% 时更少。在计算“失败”次数前,务必确认置信水平。

2. “干净 (Clean)”与“脏 (Dirty)”盈亏 (P&L):
- 干净 P&L: 使用与昨天相同的投资组合(没有新的交易)。这对于测试模型本身的准确度更好。
- 脏 P&L: 包含日内交易的实际盈亏。这反映了公司的实际风险,但可能会掩盖模型本身的缺陷。

FRM 课程通常偏好使用“干净 P&L”进行回测,以隔离出模型表现。

总结与核心重点

- 回测是将预测的 VaR 与实际亏损进行对比。

- 异常值发生在实际亏损 > VaR 时。

- Kupiec 测试检查异常值的数量是否正确(无条件覆盖率)。

- Christoffersen 测试检查异常值是否为随机分布(独立性)。

- 第一型错误是拒绝了一个好的模型;第二型错误是接受了一个坏的模型。

- 巴塞尔红绿灯系统使用 250 天的 99% VaR 结果将模型分类为绿、黄、红灯区。

请继续练习那些二项分布机率题!一旦你掌握了“红绿灯”系统和两类错误背后的逻辑,你就能为考试的这一部分做好充分准备。