halo 的技术博客

返回

风险度量的核心矛盾是:你要把一整条损失分布压缩成一个数字,交给风控、资金分配、监管报表去用。压缩必然丢信息,问题是丢哪些、留哪些。VaR 只留一个分位点,ES 留下尾部的平均,而谱风险度量(Spectral Risk Measure,SRM)给了一个更一般、也更诚实的答案:用一个「风险厌恶权重函数」把从最好到最坏的每一个分位数都称一遍重,再加权求和。这个框架不仅统一了 VaR 和 ES,还告诉你为什么 ES 是「一致的」而 VaR 不是。

从 VaR 的三宗罪说起#

先把 VaR 的问题摆出来。95% VaR 的定义很简单:损失分布的 95 分位数。也就是说,「有 95% 的把握,损失不超过这个数」。它直观、好算、监管认,但有三个结构性缺陷。

第一,它对尾部形状完全失明。 VaR 只看那一个分位点,超过这个点之后是缓缓下滑还是断崖式崩盘,它一个字都不说。两个策略可以有完全相同的 95% VaR,但一个的极端损失是 -5%,另一个是 -50%,VaR 看不出任何区别。

第二,它不满足次可加性。 把两个资产合成一个组合,直觉上分散化应该让风险下降或至少不上升:VaR(A+B) ≤ VaR(A) + VaR(B)。但 VaR 在非正态、尤其是有跳跃或离散损失的情况下会违反这条——合并后的 VaR 反而更大。这在数学上意味着 VaR 不是一个「一致风险度量」(coherent risk measure),用它做资本分配可能鼓励人为拆分组合来虚降风险。

第三,它不告诉你「破了以后有多惨」。 监管和风控真正怕的不是「有没有超过 VaR」,而是「超过之后的损失有多大」。VaR 恰恰对这个问题闭口不谈。

ES(Expected Shortfall,又叫 CVaR)修好了前两条:它是「超过 VaR 那部分损失的条件均值」,把整条尾部平均进来,并且满足次可加性、是一致风险度量。这也是巴塞尔协议 III 用 ES 取代 VaR 的原因。但 ES 仍然有一个隐含假设——它对尾部里的每一块损失一视同仁:损失是 -5% 还是 -50%,只要都在尾部,权重完全相同。这对一个极度厌恶巨灾的投资者来说,还是不够。

谱风险度量就是来解决这最后一层的。

什么是谱风险度量#

谱风险度量的定义可以写成一个加权积分。把损失按从最好到最坏排序,用分位数 p ∈ [0,1] 索引(p=0 是最好情形,p=1 是最坏情形),设 q(p) 是这个分位数上的损失,φ(p) 是一个权重函数,那么:

SRM = ∫₀¹ φ(p) · q(p) dp
plaintext

要让 SRM 成为一个「一致风险度量」,权重函数 φ(p) 必须满足两个条件:

  1. 非负且积分为 1:φ(p) ≥ 0,∫φ(p)dp = 1。它是一个概率密度,把总权重分配到各个分位数上。
  2. 单调不减:φ(p) 随 p 增大而不减。也就是越坏的情形(p 越大)权重越高——这正是「风险厌恶」的数学表达。

第二条是灵魂。它说:一个理性的、厌恶风险的人,应该对更糟糕的结果给更高的关注。只要权重函数满足「越坏越重视」,得到的风险度量就自动是一致的。

在这个框架下,VaR 和 ES 都是特例:

  • VaR 对应 φ 是一个狄拉克脉冲,全部权重压在单个分位点 p=α 上。它显然不满足「单调不减」(除了那一点其他地方权重为 0),所以 VaR 不是一致风险度量——这从权重函数的角度一眼就能看出来。
  • ES 5% 对应 φ 在尾部 [0, 0.05] 上均匀分布(值为 1/0.05=20),其余为 0。它满足非负、积分为 1,但「均匀」意味着尾部内部权重恒定——是「阶梯型」而非严格递增。ES 是一致的,但它是谱风险度量里最「粗糙」的那一档。

下面这张图把三者的权重函数画在一起,一眼看清区别:

三种风险度量的权重函数对比

VaR 是一根竖线(单点),ES 是一个矩形台阶(尾部均匀),而指数谱是一条从最坏损失处向内平滑衰减的曲线——越靠近最坏情形,权重越高。这条平滑曲线才是谱风险度量真正的用武之地。

指数谱:一个可调风险厌恶的实用选择#

理论上 φ 可以是任何满足条件的函数,但实践中最常用的是指数谱风险厌恶函数

φ(p) = k · e^(-k·(1-p)) / (1 - e^(-k))
plaintext

这里 k > 0 是风险厌恶系数。k 越大,权重越集中在最坏的尾部;k → 0 时 φ 趋于均匀(退化成对整条分布求期望,也就是只看均值损失)。这个函数来自指数效用理论——一个具有常绝对风险厌恶(CARA)效用的投资者,其风险度量恰好是这个形式。换句话说,k 不是随便拍的参数,它有明确的经济含义:投资者的绝对风险厌恶程度。

用 Python 实现非常直接。核心思路是:把历史损失(或蒙特卡洛模拟的损失)从最坏到最好排序,给每个分位数按 φ 算权重,加权求和。

注意 losses_sorted 是降序的(最坏在前),对应的 u 从接近 0 到接近 1,而指数权重 k·e^(-k·u) 在 u 小时最大——所以最坏损失(排在最前、u 最小)拿到最高权重。这与 φ(p) 定义里「p→1(最坏)权重最大」是同一件事,只是索引方向反过来,实现时对齐好即可。这类方向对齐是谱风险度量最容易写错的地方,务必用一个已知分布验证一遍。

三种度量在同一分布上的读数#

光有公式不够,要看它们在真实分布上给出什么数字。用一个自由度为 4 的 t 分布模拟日收益(尖峰厚尾,接近真实股票),比较三者:

np.random.seed(42)
returns = np.random.standard_t(4, 20000) * 0.012 + 0.0003

var95 = value_at_risk(returns, 0.95)
es95 = expected_shortfall(returns, 0.95)
srm = spectral_risk_measure(returns, k=25.0)

print(f"VaR95 = {var95*100:.2f}%")
print(f"ES95  = {es95*100:.2f}%")
print(f"SRM   = {srm*100:.2f}%")
# VaR95 = 2.50%
# ES95  = 3.84%
# SRM   = 3.65%
python

同一分布下三种风险度量的取值

左图是日收益分布,三条竖线分别标出 VaR95、ES95 和指数谱 SRM 的位置;右图把三个数字并排比较。可以看到一个清晰的递进:VaR95 = 2.50% 只是尾部入口的那一点;ES95 = 3.84% 把 5% 尾部整体平均进来,明显更大;而 SRM(k=25)= 3.65% 介于两者之间——它没有像 ES 那样只盯着最尾的 5% 均匀平均,而是把整条分布都纳入,但给尾部指数级的高权重。

这里有个容易误解的点:SRM 不一定比 ES95 大。它们衡量的是不同的东西。ES95 是「最坏 5% 的条件均值」,只看尾部;SRM 是「全分布的风险厌恶加权」,包含中间那些小损失甚至盈利(权重很低但非零)。谁大谁小取决于 k 和 α 的具体取值。真正的重点不是绝对大小,而是 SRM 允许你用一个连续参数 k 去调节「你到底有多怕极端情形」,而不是像 ES 那样被 α 一刀切死。

风险厌恶系数 k 的作用#

k 是谱风险度量的方向盘。下面这张图扫描了 k 从 1 到 80 时 SRM 的变化:

风险厌恶系数对谱风险的影响

k 很小时(接近 0),权重几乎均匀,SRM 趋近于「平均损失」——那条灰色虚线,也就是最不厌恶风险的读数。随着 k 增大,权重不断向最坏尾部集中,SRM 单调爬升,逐渐逼近甚至超过 ES95。这条曲线的形状本身就是一份风险偏好菜单:一个养老金账户可能选很大的 k(极度厌恶巨灾),一个对冲基金的自营台可能选较小的 k(能承受尾部波动换取更高杠杆)。

关键洞察是:风险度量的选择本质上是一个偏好陈述,而不是一个客观事实。 VaR 假装尾部形状不重要,ES 假装尾部内部人人平等,谱风险度量把这个假装撕掉了——它逼你显式地写下「我有多怕最坏情形」,然后诚实地把这个偏好算进最终那个数字里。这也是它相比 VaR/ES 最大的价值:它把一个被藏在方法论里的主观选择,变成一个可以讨论、可以校准、可以对不同投资者不同设置的显式参数。

落地时的几个实操要点#

用蒙特卡洛或历史模拟喂损失分布。 谱风险度量对分布的尾部形状高度敏感,因此喂进去的损失分布质量决定一切。如果你用历史模拟,样本量要足够大(几千到上万条),否则最尾部几个点的权重畸高,SRM 会剧烈抖动。更稳的做法是先拟合一个厚尾分布(如前面文章讲过的 NIG、Johnson SU),再从中大量抽样。

k 要和你的效用/资本约束对齐。 不要拍脑袋填 k。一个可操作的校准方法:找到一个你「绝对不能接受」的损失水平(比如触发平仓的回撤线),调 k 使得 SRM 恰好落在那附近,让风险度量的读数与你的实际风控阈值对齐。

跨组合比较时 k 必须一致。 谱风险度量的一致性(次可加性)只在同一个 φ 下成立。比较两个策略或做资本分配时,必须用相同的 k,否则数字没有可比性。

小结#

谱风险度量的价值不在于它给出一个「更准」的数字——风险本来就没有唯一正确答案——而在于它提供了一个统一、诚实的框架:所有一致风险度量都是某个「越坏越重视」权重函数下的加权平均,VaR 和 ES 只是这个谱系的两个端点或特例。当你选择用 VaR,你其实是在说「我只关心一个分位点」;选择 ES,你在说「我关心尾部但内部平等」;选择指数谱并设定 k,你在诚实地写下「我对极端损失的厌恶程度是这么多」。把主观偏好从方法论的暗处拽到参数的明处,这本身就是风险管理的一大进步。

诚实边界:谱风险度量继承了所有基于分布的风险度量的通病——它只和你喂进去的损失分布一样可靠,样本外的黑天鹅它一样抓不住;最尾部的权重最高,而最尾部恰恰是样本最稀、估计误差最大的地方,因此 SRM 在小样本下方差很大,务必配合厚尾分布拟合与大样本蒙卡;k 的选择虽然有理论依据,但校准到具体数值仍带主观性,不同 k 会给出不同结论,报数字时必须同时报 k。(中阶)

谱风险度量:用风险厌恶权重函数把整条尾部写进单一数字
https://blog.halo26812.eu.org/blog/spectral-risk-measure
Author halo
Published at 2026年7月27日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨