吸收比率与市场脆弱性:用主成分集中度预警系统性风险
Kritzman et al.(2011)的吸收比率:滚动协方差特征分解后看前 K 个主成分吸收多少总方差——AR 高意味着资产被公共因子『焊死』,冲击沿传导链放大。它度量脆弱性而非危机:AR 高不预测下跌,只预测『一旦跌会又急又齐』。30 资产两 regime 模拟(15 年)实测:脆弱期 AR 0.78 vs 平静期 0.61,AUC 0.863;ΔAR>1 组未来 10 日波动 17.1% vs 8.4%(翻倍)、左尾 5% 分位 −6.1% vs −2.2%,但收益均值反而最高——预测波动不预测方向。风险开关(ΔAR>1→仓位 30%):波动 16.1%→10.9%、Sharpe 0.91→1.01、最大回撤 −43.8%→−39.1%,年化 14.7%→11.0%——买保险要付保费。诚实边界:模拟 regime 由因子强度驱动、AR 天生占便宜;减仓日占比 28% 摩擦不可忽略;超参数未调优;AR 与波动率高度相关,增量信息需控制波动率后再检验。
马氏距离湍流指数回答的问题是”今天的市场有多不正常”——它看的是单日收益向量相对历史分布的异常度。这一篇换一个更结构性的问题:市场现在有多脆弱? 不是问今天跌没跌,而是问:如果明天来一个冲击,它会被分散吸收掉,还是会沿着紧耦合的传导链放大成系统性事件?
Kritzman, Li, Page & Rigobon(2011)给出的答案工具是吸收比率(Absorption Ratio):
其中 是滚动窗口协方差矩阵从大到小排序的特征值,K 通常取 N/5。翻译成人话:前 20% 的主成分”吸收”了多少比例的总方差。
一、为什么主成分集中度 = 脆弱性#
特征分解把 N 个资产的波动拆成 N 个互相正交的”风险方向”。两种极端市况:
低 AR(风险分散):方差摊在许多独立方向上,资产各走各的——能源跌、科技涨、债券横盘。这时一个冲击打进来,只伤到它所在的方向,其他方向照常运转,组合层面被稀释。市场是解耦的。
高 AR(风险集中):绝大部分方差挤进一两个公共方向——所有资产被同一只无形的手拽着同涨同跌。这时任何冲击都会沿着这个公共方向传导到所有资产,分散化在你最需要它的时刻失效。市场是焊死的。
关键的概念区分,也是 Kritzman et al. 原文反复强调的:AR 度量的是脆弱性(fragility),不是危机(crisis)。高 AR 的市场完全可以继续上涨——2006-2007 年美股 AR 持续攀升而市场屡创新高。AR 高只意味着:一旦出事,会出大事。它是干柴指标,不是火柴指标。
实现只需要十几行:
import numpy as np
import pandas as pd
def absorption_ratio(returns, window=120, k_frac=0.2):
"""滚动吸收比率。returns: (T, N) 收益矩阵。"""
T, N = returns.shape
K = max(1, int(N * k_frac))
ar = np.full(T, np.nan)
for t in range(window, T):
C = np.cov(returns[t-window:t].T)
ev = np.linalg.eigvalsh(C)[::-1] # 从大到小
ar[t] = ev[:K].sum() / ev.sum()
return pd.Series(ar)
def delta_ar(ar, short=15, long=252):
"""Kritzman et al. 的标准化 AR 位移:短均线离开长均线几个标准差。"""
return (ar.rolling(short).mean() - ar.rolling(long).mean()) / ar.rolling(long).std()python第二个函数是原论文真正用于交易信号的量:ΔAR = (AR 的 15 日均线 − 250 日均线) / 250 日标准差。用位移而非水平值,是因为 AR 的绝对水平因市场、因资产池而异(成分股同行业越多天然越高),可比的是”相对自身历史的突变”。
二、模拟市场与 AR 的判别力#
真实市场没有”脆弱期”的标准答案,无法计算判别指标,所以先在受控环境里做实验:N=30 资产,15 年日频,两状态 Markov 市场——平静期公共因子波动 0.5%/日、特质波动 1.0%/日(特质主导,市场解耦);脆弱期公共因子波动 2.4%/日、特质 1.1%/日(因子主导,市场焊死),叠加一个恒定的弱行业因子。脆弱期占比 11.9%,平均持续约 33 个交易日。AR 用 120 日滚动窗口、K=6。

上图蓝线是 AR,红色阴影是真实脆弱期,下图是等权组合净值。肉眼可见 AR 在每段阴影内抬升、阴影结束后缓慢回落。定量结果:
- 脆弱期 AR 均值 0.78 vs 平静期 0.61,判别 AUC = 0.863
- AR 的响应有滞后:120 日窗口意味着 regime 切换后 AR 要爬一段时间才到位——这是所有滚动窗口指标的宿命,窗口越短响应越快但噪声越大
特征值谱的对比把机制看得更直白。取一个平静期中点和一个脆弱期中点,各画出 30 个特征值的方差占比:

平静期第一特征值只占约 25%,方差在十几个方向上摊开;脆弱期第一特征值飙到 60% 以上,第 5 名以后的方向几乎被抽干——方差向头部主成分的迁移,就是市场从解耦到焊死的谱表征。
三、ΔAR 的预测内容:波动和左尾,不是方向#
把 ΔAR 按 ±1 分成三组,统计每组之后 10 个交易日的组合表现:

| 分组 | 未来 10 日收益均值 | 收益 5% 分位(左尾) | 未来 10 日年化波动 |
|---|---|---|---|
| ΔAR < −1 | +0.77% | −2.18% | 8.4% |
| −1 ≤ ΔAR ≤ 1 | +0.41% | −3.03% | 9.7% |
| ΔAR > 1 | +0.84% | −6.06% | 17.1% |
这张表是全文最重要的结果,因为它精确演示了”脆弱性指标”的含义:
ΔAR 完全不预测收益方向——高 ΔAR 组的未来收益均值(+0.84%)甚至是三组最高的。如果你拿 AR 当择时信号做多空,会输得莫名其妙。
但它强烈预测波动和左尾:高 ΔAR 组未来波动率是低 ΔAR 组的两倍(17.1% vs 8.4%),左尾 5% 分位差了近 3 倍(−6.1% vs −2.2%)。市场焊死之后,好日子照过,但坏日子会坏得多——收益分布不是均值下移,而是两侧拉宽、左尾拉长。
这决定了 AR 的正确用法:不是预测涨跌,而是调节承担风险的规模——在脆弱性高的时候少暴露,让同样的冲击打在更小的仓位上。
四、风险开关回测:买保险,付保费#
规则与湍流指数一文保持一致以便对比:昨日 ΔAR > 1 → 今日仓位降至 30%,否则满仓等权组合。无成本假设,信号滞后一天执行。

| 指标 | 等权持有 | ΔAR 风险开关 |
|---|---|---|
| 年化收益 | 14.7% | 11.0% |
| 年化波动 | 16.1% | 10.9% |
| Sharpe | 0.91 | 1.01 |
| 最大回撤 | −43.8% | −39.1% |
| 减仓时间占比 | — | 27.8% |
解读要诚实:
风险端的改善是实打实的:波动率砍掉三分之一,Sharpe 从 0.91 提到 1.01,最大回撤收窄近 5 个百分点。且改善机制与上一节的分组统计完全自洽——减掉的正是未来波动 17% 的那 28% 时间。
但收益端付了 3.7 个百分点的保费。这个模拟市场整体是牛市(等权年化 14.7%),高 ΔAR 时段的收益均值并不为负(+0.84%),砍仓位就砍掉了这部分收益。AR 开关的本质是卖掉收益分布的两侧换取更窄的分布——Sharpe 改善说明这笔交易划算,但绝对收益下降说明它不是免费午餐。对比湍流指数在其模拟市场里”Sharpe 翻倍、收益还更高”的结果:那是因为湍流市场的坏 regime 均值显著为负,减仓直接避损;本文的脆弱期均值只是轻微为负(−0.08%/日),减仓主要在降波动。风险开关赚不赚钱,取决于坏状态的均值有多负——这是数据性质,不是策略功劳。
28% 的减仓时间也值得警惕:换手集中在 ΔAR 穿越阈值附近,实盘中信号在阈值附近抖动会造成频繁进出,需要加滞回带(如 >1 减仓、<0.5 才恢复)压制。
五、A/B/C 三段式总结#
A. 实现细节:30 资产两状态 Markov 模拟市场(转移概率 0.005/0.03,脆弱期占比 11.9%);AR 用 120 日滚动协方差 + 前 K=6 特征值占比;ΔAR = (15 日均线 − 252 日均线)/252 日标准差;开关信号用昨日 ΔAR,今日调仓,无 look-ahead;组合为 30 资产等权,回测起点为首个 AR 有效日;AUC 用秩统计量(Mann-Whitney)计算。
B. 已知偏差:(1) 模拟市场的 regime 差异由公共因子强度直接驱动,而 AR 恰好是因子强度的谱度量——指标与数据生成机制同源,判别力天生被高估,真实市场 AUC 会显著低于 0.863;(2) AR 与已实现波动率高度正相关(脆弱期波动也高),本文未做”控制波动率后的增量信息”检验——实务中必须回答”AR 是否只是波动率的换皮”,Kritzman et al. 的答案是 AR 领先于波动率上升,但这需要在真实数据上单独验证;(3) 窗口 120、K=N/5、阈值 ±1、减仓至 30% 均为文献惯例值,未调优也未做敏感性分析;(4) 无交易成本,28% 的减仓时间占比下成本会侵蚀相当部分 Sharpe 改善。
C. 结果解读:吸收比率的独特价值在于它度量的维度与波动率、湍流指数都不同——波动率问”动得多大”,湍流指数问”今天多反常”,AR 问”结构多集中”。三者构成一个互补的风险仪表盘:AR 是慢变量(滚动窗口特征分解,以月为尺度演化),适合做战略层面的风险预算调节;湍流指数是快变量(单日即时),适合战术减仓。实测结果支持教科书结论:ΔAR 预测波动(17.1% vs 8.4%)和左尾(−6.1% vs −2.2%)但完全不预测方向(高 ΔAR 组收益均值反而最高),因此它只应该接到仓位规模上,不应该接到多空方向上。风险开关将 Sharpe 从 0.91 提到 1.01 的同时年化收益下降 3.7 个百分点——把它理解为一份波动保险的定价,而不是一台收益机器。下一步自然的延伸:把 AR、湍流指数、DCC 相关三个信号做逻辑或/加权组合,检验多信号风险开关是否优于任何单信号——留给后续文章。