带约束的风险预算组合:理论、算法、应用与谜题
Jean-Charles Richard (Eisler Capital) · Thierry Roncalli (Amundi Asset Management, 巴黎) 2019 年 1 月 · 36 页(正文 26 页 + 附录) 本次归档:
raw/papers/201901-constrained-risk-budgeting-portfolios/(paper.pdf 728 KB + extracted.md)
一句话核心
风险平价组合的优点之一是「不需要加约束就能稳住解」,但这同时也是它的缺点——一旦组合经理真的要加约束(最低持仓、行业中性、流动性阈值),事前定下的风险预算与事后实现的风险贡献就不再相等,「等风险贡献」这句话失去意义。这篇论文把这件事讲清楚:加约束后的 RB 组合应理解为「带软风险预算约束的最小风险组合」而不是「带硬风险预算约束的组合」,并给出一套用大规模机器学习优化器(CCD / ADMM / 近端算子 / Dykstra 算法)求解的方案,最后指出一个无法回避的「缩放谜题」——约束与风险测度的正齐次性可能不相容。
问题与关键结构
论文采用 Roncalli (2015) 的标准差型风险测度:
\mathcal{R}(x)=-x^\top(\mu-r)+c\sqrt{x^\top\Sigma x}
其中 c 是收益与波动之间的权衡标量。资产 i 的风险贡献为 RC_i(x)=x_i\left(-(\mu_i-r)+c\frac{(\Sigma x)_i}{\sqrt{x^\top\Sigma x}}\right)。RB 组合定义为下述非线性方程组的解(要求 b_i>0、x_i>0、\sum_i b_i=1、\sum_i x_i=1):
RC_i(x)=b_i\mathcal{R}(x)
ERC 是其特例(\mu_i=r、c=1、b_i=1/n),此时 RC_i(x)=\frac{x_i(\Sigma x)_i}{\sqrt{x^\top\Sigma x}}=\frac{1}{n}\sqrt{x^\top\Sigma x}。存在唯一性条件为 c>SR^+(SR^+ 是资产池的最大夏普比率)。
加约束后严格定义失效。 设 x^\star(S) 是无额外约束的 RB 组合(S 为标准单纯形),x^\star(S,\Omega) 是加上约束集 \Omega 后的解。由于 x^\star(S) 唯一,x^\star(S,\Omega) 存在当且仅当 x^\star(S)\in\Omega,而这一般不成立。因此实务做法是把等式换成近似等式,得到最小二乘问题(Bai, Scheinberg & Tutuncu 2016):
\min_{x\in S\cap\Omega}\ \sum_{i=1}^{n}\left(\frac{1}{b_i}RC_i(x)-\theta\right)^2
论文主张的「正确」形式是带对数障碍的极小化问题:
x^\star(S,\Omega)=\arg\min_{x\in\Omega}\ \mathcal{R}(x)\quad\text{s.t.}\ \sum_{i=1}^{n}b_i\ln x_i\ge\kappa^\star
其中 \kappa^\star 是唯一使权重和为 1 的常数。写成拉格朗日形式后得到论文实际求解的目标函数 \mathcal{L}(x;\lambda)=\mathcal{R}(x)-\lambda\sum_i b_i\ln x_i,\lambda^\star 用二分法确定。
关键发现
「软约束」表述。 论文指出问题 (10) 的凸性给出单调性:\kappa_2\le\kappa_1\Rightarrow \mathcal{R}(x^\star(\Omega,\kappa_2))\ge \mathcal{R}(x^\star(\Omega,\kappa_1))。这解释了 Maillard 等 (2010) 的「多头最小方差—风险预算—等权」排序与 Roncalli (2013) 的「多头最小风险—风险预算—权重预算」排序。
加约束后风险预算的次序会被打乱。 4 资产例子(波动率 10%/15%/20%/30%),RB 风险预算为 30%/30%/19.5%/20.5%:无约束时 RC^\star 恰为 30.00%/30.00%/19.50%/20.50%,组合波动率 12.11%;加 x_i\le30\% 约束后 RC^\star 变成 15.48%/24.96%/30.52%/29.04%,组合波动率 13.94%——事前预算 b_3<b_4(19.5% vs 20.5%),事后 RC^\star_3>RC^\star_4(30.52% vs 29.04%),尽管资产 3、4 都没有触及上界。论文由此说:约束下「等风险贡献」这个说法不再成立。
盒约束下的三类资产。 一阶条件给出 RC_i(x)=\lambda b_i+\lambda^-_i(x_i-x^-_i)-\lambda^+_i(x^+_i-x_i),配合 Kuhn-Tucker 条件得到三种情形:未触界时回到普通 RB 组合;触及下界时风险贡献高于 b_i;触及上界时风险贡献低于 b_i。论文强调:对数障碍解保留了未触界资产的等风险贡献性质,最小二乘解则不然。
动态配置的换手控制。 5 资产例子,当前组合 x_0=(25\%,25\%,10\%,15\%,30\%) 的波动率分解中第 2 个资产风险贡献高达 31.10%;无约束 ERC 组合换手 22.18%、波动率 11.88%;加「权重相对当前配置偏离不超过 5%」的约束后,换手降到 14.22%、波动率 12.14%,且未触界的 3 个资产风险贡献仍精确相等(2.35%),触下界的第 2 个资产升至 2.98%、触上界的第 5 个资产降至 2.10%。两段式「先定触界资产、再在剩余资产间等风险分配」的朴素做法给出 2.34%/2.49%/2.21% 三个不相等的贡献,论文用「RB 组合对资产池定义敏感」(Roncalli & Weisang 2016)解释这一失败。
不等式约束下的多资产配置。 8 类资产(美债 10Y、欧债 10Y、投资级债、高收益债、美股、欧股、日股、新兴市场股)的风险平价组合债券占 76.72%、股票占 23.28%,波动率 4.78%;加「后 4 类资产(股票)合计不低于 30%」后波动率 5.20%;再加「欧洲资产超配美国资产 5%」后波动率 5.19%。
直接控制换手的做法。 双向换手定义为 \tau(x\mid x_0)=\sum_i|x_i-x_{0,i}|=\lVert x-x_0\rVert_1,对应约束集 \Omega=\{x:\tau(x\mid x_0)\le\tau^\star\},其近端算子可由 \ell_1 球投影给出。8 类资产从 50/50 配置起步,\tau^\star 从 0 放宽到 70%,实际换手依次为 0.00/10.00/20.00/30.00/40.00/50.00/60.00/61.02%,组合单调趋近 ERC 组合(\tau^\star=70 时第 1 个资产权重 26.83%,与 ERC 的 26.83% 一致)。
智能贝塔 / 风险指数。 7 只股票(市值权重 34%/25%/20%/15%/3%/2%/1%,波动率 15%–21%)上,普通 ERC 把第 1 只股票的权重从 34% 压到 17.22%,对 3 只小盘股(合计 6%)却各给 12%–13% 权重——流动性问题。论文提出四种方案对比:C-ERC(直接把小盘股权重锁定在市值权重)波动率 14.68%,LC-ERC(大盘股内部做 ERC,小盘股保持市值权重)14.68%,LS-ERC(最小二乘解)14.66%,而市值加权组合是 14.50%。C-ERC 的好处是大盘股在全局层面仍满足等风险贡献(每个 23.46%),这是 LC-ERC 与 LS-ERC 做不到的(后者等于假设两个股票池不相关)。
算法效率(Matlab 实现,相对耗时)。
| 算法 | x-更新 | 实现 (1) | 实现 (2) | 实现 (3) |
|---|---|---|---|---|
| ADMM | Newton | 2 | 1 | 1 |
| ADMM | BFGS | 380 | 280 | 25 |
| ADMM | QP | 220 | 120 | 110 |
| ADMM | CCD | 10 | 9 | 8 |
| CCD | — | 1 | 1 | — |
实现 (1) 是经典二分法,(2) 是加速二分法,(3) 再加上自适应惩罚参数。作者结论:ADMM-Newton 与 CCD 最好,ADMM-CCD 次之,ADMM-QP 反而偏慢,ADMM-BFGS 最差但加上加速二分与自适应缩放后耗时降到 1/15。论文还报告传统约束优化算法(SQP、信赖域、内点法)都找不到解,原因是「对数障碍与约束的混合」不是标准问题。
缩放谜题。 8 类资产例子中,「股票合计不低于 30%」与「前 4 类资产合计不超过 70%」这两个约束直觉上等价,却给出不同解:前者波动率 5.20%、拉格朗日函数值 13.29%,后者 5.43%、20.86%,两者都不是全局最小(第三、第四列的解分别是 5.98%/10.68% 与 6.56%/28.27%)。原因是 \sum_i x_i=1 由对数障碍对应的 \lambda 管理,不在 \Omega 里;论文称之为缩放相容性问题——解只有在约束与风险测度的正齐次性相容时才唯一可判。
重要 caveat
- 论文自陈「带约束的风险预算配置不自然且有局限」,第 5 节专门讨论这一点。作者的结论是要接受「约束下事前风险预算 ≠ 事后风险贡献」这条断裂。
- 正齐次性只在无约束时与 RB 组合的缩放性质直接对应;加约束后它只在 \lambda 的一个邻域内需要成立,因此收紧约束时数值解可能不再对应真正的约束 RB 组合——作者没有给出判别准则,只说可以用拉格朗日函数值 \mathcal{L}(x^\star(\lambda^\star);\lambda^\star) 比较各候选解取最小。
- 论文的计算实验都是小规模玩具例子(4、5、7、8 个资产),绝对耗时不具参考价值;ADMM-BFGS 提速 15 倍的说法来自 Matlab 实现,且 ADMM-QP 的劣势被作者归因于 Matlab 的
quadprog程序(Python 下未复现同样结果)。 - 实证部分没有回测业绩,全部是静态权重表;风险平价基金的实际效果未做验证。
对 quant wiki 的意义
- 它补上了 Risk Parity 概念页缺失的一块:风险平价在实务中必然要加约束,而加约束会改变「风险预算」这个概念的含义——事前预算与事后贡献不再相等,次序甚至会反转。
- 它是 Coherent Risk Measures 中「正齐次性」这条公理的一个具体反例边界:约束与正齐次性不相容时,RB 组合的存在唯一性论证失效。论文也借此批评「欧拉分解 = 一致风险测度」这种常见混淆。
- 它把 ADMM 算法 与 高维风险平价算法 两条工具线接起来:CCD 在 Griveau-Billion 等 (2013) 里解无约束问题,ADMM-CCD 是本文为带耦合约束的问题给出的混合解法。
- 「C-ERC」这一做法(把小盘股权重锁在市值权重、对大盘股做全局等风险贡献)是库里目前唯一一页讲风险平价与流动性/小盘偏差交互的素材。
相关概念
- 风险预算与风险平价 — RB 的定义与性质
- Risk Parity — 风险平价总入口
- ERC 组合性质 — 等风险贡献的数学性质
- 高维风险平价算法 — CCD 等求解器
- ADMM 算法 — 约束问题的求解框架
- Richard-Roncalli 2019 — 论文实体页