halo 的技术博客

返回

先说结论:均值方差优化最大的敌人不是市场,是你自己的估计误差——优化器会精准地满仓押注在期望收益恰好被样本噪声高估的资产上。Wasserstein 分布鲁棒优化(DRO)的解法是给经验分布画一个半径为 ε 的”模糊球”,对球内最坏的分布做优化;而对偶定理证明这等价于在目标函数里加一项 ε·‖w‖ 的范数惩罚。300 次重抽样实验里,它把样本内外的乐观差距从 12.0% 压到 8.5%,把跨样本权重换手从 0.86 降到 0.65。但半径扫描也给出一个诚实的对照:调到最优的 DRO 样本外 Sharpe 0.343,等权基准 0.335——鲁棒优化买到的不是超额收益,是”不再被自己的估计坑死”。

一、误差放大器:MV 优化到底败在哪#

Markowitz 均值方差优化的输入是期望收益 μ 和协方差 Σ,输出是权重 w。问题在于 μ 的估计误差大得离谱:年化波动 20% 的资产,用一年日度数据估年化期望收益,标准误差就是 20%——估计值 8%,置信区间大约是 -32% 到 +48%。这不是估计,这是掷骰子。

更糟的是优化器对这种噪声的反应方式。它不会平均化误差,而是系统性地选择被高估的资产:5 个资产里哪个的样本均值恰好被噪声推高了,优化器就重仓哪个。这就是 Michaud 说的”误差最大化”(error maximization)。

量化这件事:5 资产市场,真实年化期望收益 5%~9%、相关 0.35、t(5) 肥尾。抽 300 份独立的”一年日度样本”,每份跑一次经典 MV 优化,然后在 40 年的长样本上检验样本外表现:

  • 样本内承诺:平均年化 16.5%
  • 样本外兑现:平均年化 4.4%
  • 乐观差距:12.0 个百分点

样本内数字纯粹是幻觉——优化器把噪声当成了 alpha,并给自己开了一张无法兑现的支票。

二、Wasserstein 球:承认经验分布本身是错的#

传统鲁棒优化对参数不确定:给 μ 画一个椭球,“μ 在这个区间里,对最坏的 μ 优化”。Wasserstein DRO 更彻底:对整个分布不确定

Wasserstein 距离度量两个分布之间”搬运概率质量的最小代价”——把分布 P 的质量搬成分布 Q 的形状,每单位质量移动距离 d 花费 d,总运费的最小值就是 W(P,Q)W(P, Q)。它比 KL 散度更适合这里:KL 要求两个分布支撑集重叠(经验分布是离散点,真实分布是连续的,KL 直接无穷大),Wasserstein 对离散-连续的比较毫无压力。

DRO 的问题定义:以经验分布 P^T\hat{P}_T 为球心、ε 为半径画球,对球内最坏分布优化:

maxw  minQ:W(Q,P^T)ε  EQ[U(wr)]\max_w \; \min_{Q:\, W(Q, \hat{P}_T) \le \varepsilon} \; \mathbb{E}_Q[\,U(w^\top r)\,]

看起来是个无限维的 min-max 问题——球里有不可数无穷个分布。但这正是 Wasserstein DRO 最漂亮的地方:Mohajerin Esfahani & Kuhn (2018) 的对偶定理证明,对 Lipschitz 目标函数,内层最坏化有闭式解

minQ:W(Q,P^T)εEQ[wr]  =  EP^T[wr]    εw\min_{Q:\, W(Q,\hat{P}_T)\le\varepsilon} \mathbb{E}_Q[w^\top r] \;=\; \mathbb{E}_{\hat{P}_T}[w^\top r] \;-\; \varepsilon\,\|w\|

无限维问题坍缩成一行:最坏期望 = 样本期望减去 ε 乘以权重范数。实现上只是给经典 MV 目标加一个惩罚项:

def wass_robust_weights(R, eps, gamma=6.0):
    """Wasserstein-DRO 均值方差:样本目标 - eps * ||w||_2"""
    mu_hat = R.mean(axis=0)
    cov_hat = np.cov(R.T)

    def f(w):
        base = w @ mu_hat - 0.5 * gamma * w @ cov_hat @ w
        return -(base - eps * np.linalg.norm(w))   # 鲁棒化 = 范数惩罚

    cons = [{"type": "eq", "fun": lambda w: w.sum() - 1}]
    res = minimize(f, np.full(N, 1/N), bounds=[(0,1)]*N, constraints=cons)
    return res.x
python

这个等价关系的含义比公式本身重要:正则化不是工程 trick,是对分布不确定性的精确定价。你在 ridge/lasso 组合优化里加的范数惩罚,一直都在隐式地做分布鲁棒优化——ε 就是你对”经验分布离真相有多远”的定价。直觉上也通:‖w‖ 大意味着押注集中,而集中押注对分布扰动最脆弱,所以最坏情况罚得最重;分散的 w 范数小,对搬动概率质量天然免疫。

三、实验:ε 买到了什么#

同一设定下对比 ε = 0(经典 MV)到 ε = 2e-3 的五档:

ε样本内年化样本外年化乐观差距样本外 Sharpe
0(经典 MV)16.5%4.4%12.0%0.329
2e-416.0%4.4%11.5%0.330
5e-415.2%4.5%10.7%0.336
1e-314.4%4.5%9.9%0.338
2e-313.0%4.5%8.5%0.344

乐观差距随 ε 收缩

三个观察:

**第一,ε 首先杀的是样本内幻觉。**样本内承诺从 16.5% 降到 13.0%,样本外兑现纹丝不动甚至微升——被砍掉的 3.5 个百分点全是噪声制造的假 alpha。鲁棒化的第一功能是让回测报告变诚实。

**第二,权重稳定性显著改善。**300 份样本的权重箱线图显示,经典 MV 的权重在 0 和 60% 之间狂跳(哪个资产被高估押哪个),DRO 的权重明显收拢,跨样本平均换手从 0.86 降到 0.65

权重稳定性对比

这在实盘里直接兑换成交易成本:每次重估计参数后组合要调仓的量少了四分之一。

**第三,样本外 Sharpe 的改善是真实但温和的。**0.329 → 0.344,约 5%。别指望鲁棒化创造收益——它只是不再销毁收益。

四、半径扫描:倒 U 形和一个残酷的基准#

ε 是唯一超参数,扫描 0 到 8e-3:

半径扫描

曲线呈平缓的倒 U 形:ε 太小退回过拟合,ε 太大过度保守化(本例做多约束下逐渐趋向等权,样本外 Sharpe 从峰值回落)。峰值在 ε ≈ 3e-3 附近,样本外 Sharpe 0.343。

图里那条虚线是本文最诚实的一笔:等权 1/N 组合的样本外 Sharpe 是 0.335。也就是说,精心构造、精心调参的 Wasserstein DRO,最终比”什么都不估计”的天真等权好了 0.008。DeMiguel、Garlappi & Uppal (2009) 那篇著名的”1/N 打败所有优化器”在这里几乎复现了。

这不是 DRO 的失败,而是对它角色的正确定位:当估计噪声大到淹没资产间真实差异时(一年样本估期望收益就是这种情形),任何优化的上限就是等权附近;DRO 的价值是保证你落在这个上限附近,而不是被经典 MV 拖到 0.329 甚至更糟的深坑里。如果资产间真实差异更大、或者你有真正有信息量的期望收益预测(因子模型、分析师修正),DRO 相对等权的优势才会打开——它保护的是信号,信号越强保护越值钱。

五、三个陷阱#

陷阱一:ε 的理论校准在金融样本量下形同虚设。理论给出的收敛速率是 εTT1/n\varepsilon_T \sim T^{-1/n}(n 为资产维度)——想让 Wasserstein 球以高概率罩住真实分布,所需样本量随维度指数爆炸。5 个资产、252 天样本,理论半径大到球内包含”所有资产期望都是 -50%“这类荒谬分布,按理论值优化只会得到纯现金。实践中 ε 只能靠交叉验证或按本文的扫描曲线选,理论保证是渐近的心理安慰。

**陷阱二:球内最坏分布可能毫无经济意义。**Wasserstein 球是纯几何对象,它不知道金融市场长什么样。最坏化时对手可以把概率质量搬到”股票和国债同时单日 -30%“这种经济上近乎不可能的角落。改进方向是给球加结构约束(矩约束、支撑集约束),但每加一条约束,对偶的闭式解就退化一分,最终可能要退回数值求解 min-max——优雅和现实的老交易。

**陷阱三:DRO 防的是估计噪声,不是 regime 切换。**Wasserstein 球罩住的是”与样本分布相距 ε 以内”的分布。2008 或 2020 式的 regime 切换是分布整体跳到球外几个 ε 远的地方——DRO 对此没有承诺。本文实验里样本内外来自同一数据生成过程,DRO 的表现是它的上界;真实市场里分布还会漂移,鲁棒化收益只会更小。防 regime 要靠别的工具(regime 模型、尾部对冲、TIPP 类保险),别让”鲁棒”这个词给你虚假安全感。

六、工程上的最后一句话#

Wasserstein DRO 在均值方差场景下的落地形式简单得近乎反高潮:给你现有的优化器加一项 eps * norm(w),然后花心思选 eps。它的理论纵深(最优传输、对偶定理、有限样本保证)和实现难度(一行代码)之间的落差,是这个方法最大的魅力。

务实的使用顺序:先跑重抽样实验量出你自己管道的乐观差距(本文的 300 次重抽样模板直接可用)——差距小于 2 个百分点,说明估计噪声不是你的主要矛盾,别折腾;差距像本文一样两位数,加上范数惩罚、扫描 ε、报告样本外曲线和等权基准的对比。如果调完之后还是打不过等权——那就用等权,这也是一种鲁棒优化的结论,而且是免费的。

Wasserstein 鲁棒组合优化:让权重对分布扰动免疫
https://blog.halo26812.eu.org/blog/robust-optimization-wasserstein
Author halo
Published at 2026年7月25日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨