在规则约束下优化
真实的投资组合要遵守规则:权重之和为一、不能卖空、换手率有上限。约束问题是在等式 h(w)=0 与不等式 g(w)≤0 下求 minf(w)。只有一个等式时,最佳可行点出现在 ∇f 笔直穿过约束曲面之处,因为任何侧向分量都能在不离开曲面的情况下改进 f。这就是拉格朗日条件 ∇f+λ∇h=0,数 λ 称为拉格朗日乘子。把一切汇总到拉格朗日函数 L=f+λh+μg 中,约束问题就变成寻找 L 的驻点。
∇f+λ∇h+μ∇g=0,h=0,g≤0,μ≥0,μg=0(1) 对不等式,完整的条件组以 Karush、Kuhn、Tucker 命名,含四部分:拉格朗日函数的驻点条件、原始可行性(约束成立)、对偶可行性(μ≥0)和互补松弛(μg=0)。互补松弛说明每个不等式要么不起作用(g<0 且 μ=0,无关紧要),要么起作用(g=0 且 μ>0,等同于等式)。对凸问题,这些条件是全局最优的充要条件。乘子也是一种价格:约束放松一个单位时,f 的最优值改善的速率。
两个小例子在
x+y=1 下最小化
x2+y2。拉格朗日条件
2x+λ=0 与
2y+λ=0 给出
x=y=−λ/2,再由约束得
λ=−1、
x=y=0.5,值为
0.5。若把约束放松为
x+y=c,最优值变为
c2/2,在
c=1 处的斜率为
1=−λ。再在
x≤1 下最小化
(x−2)2:无约束极小点
x=2 违反规则,所以约束在
x=1 处起作用,
2(x−2)+μ=0 给出
μ=2>0。若规则改为
x≤3,无约束极小点被允许,
μ=0。
最小方差组合是典型例子:在 1Tw=1 下最小化 wTΣw。拉格朗日条件 2Σw+λ1=0 给出 w∝Σ−11。对方差为 0.04 和 0.09 的两个不相关资产,权重正比于 1/0.04=25 与 1/0.09=11.1,故 w1=0.692、w2=0.308,组合方差为 1/(25+11.1)=0.0277。乘子等于该最小方差的 −2 倍。在真实组合中,只做多规则或换手率上限各有自己的乘子,μ 很大说明这条规则代价高昂。
- 等式约束:∇f+λ∇h=0 并满足 h=0。
- 不等式:μ≥0 且 μg=0;起作用即 g=0,不起作用即 μ=0。
- 价格:乘子是最优值对其约束放松的敏感度。
检查可行性与符号求解之后,要用四个条件检验答案。最常见的失误是不等式乘子的符号错误(当约束写成 g≤0 时必须有 μ≥0),以及把实际起作用的约束当成不起作用。教材与库的符号约定各不相同,务必看清你的求解器期望哪种形式。 实验:评分内容
- 乘子10 分
- 最优点10 分
- 放松约束10 分
- 两资产最小方差权重15 分
- 最小方差15 分
- 四个 KKT 条件15 分
- 起作用的约束10 分
- 乘子告诉你什么15 分