量化课堂的 MPT 模型文章介绍了马科维兹的现代资产配置理论 (MPT, modern portfolio theory) 的模型和理论,其中讲解了重要的有效前沿和资本市场线的重要概念,但并没有解释有效前沿的计算方法。在拉格朗日乘子文章中我们介绍了使用拉格朗日乘子 (Lagrange multiplier) 来解决非线性规划问题的方法,并提到了该方法可以用来解决现代资产配置理论中的优化问题,这便是本篇文章探讨的主题。
MPT 模型可以分没有无风险资产和有无风险资产两个版本,这两个版本的解决思路相似但在细节上有一些差异,故本系列文章分为上下两篇,上篇主要探讨没有无风险资产的情况,而下篇解决有无风险资产的情况。本篇为上篇。
MPT 模型
在 MPT 模型中,我们假设金融市场上有风险资产 i∈{1,2,…,n},其中的每个资产的收益率都随机变量 表示,有数学期望值 以及标准差 。这些资产之所以称为风险资产,因为它们的标准差 都大于零。在没有无风险资产的 MPT 模型中,我们想要按照一定权重将资金配置于风险资产,如果分配于资产 i 的权重是 ,那么 w=(,…,) 代表整个资产组合的配置比重。注意这里必须满足;当<0 时意味着要卖空第 i 种金融资产。
我们用表示按照 w 配置资产得出的资产组合的收益率变量。经过计算,发现的期望值和方差分别满足以下等式
根据分散风险的方针,资产配置的一个目标是在固定预期收益的前提条件下把收益率的方差最小化,也就是对于一个固定的期望收益 μ 解决下面的最小化问题
得到一个最小的方差 V(μ),对应着标准差。所有的期望和最小标准差的二元组 (μ,σ(μ)) 组成一条曲线,叫做有效前沿 (efficient frontier)。本文将致力于解决上述的方差最小化问题,并计算出有效前沿的闭合式公式。
拉格朗日乘子法
在拉格朗日乘子的文章中,我们提到了一个重要的定理:
定理. 设 n,m∈N。对于 i∈{1,2,…,m}, 和 f 都是 →R 的函数。并且设∈R。考虑规划问题
定义函数
这里 λ=(λ1,λ2,…,λm)∈。如果 ∈是上述规划问题的极值点,那么必定存在某个 ∈满足
我们就将使用这个定理来解决 MPT 模型的方差最小化问题。
解决马科维兹最优化问题
我们稍微更改原本的问题:
目标函数中的 1/2 不改变问题的本质,但它可以让后边的计算过程更干净。上边的问题也可以改写成矩阵的形式
在这些符号中,
当然,我们知道 Cov(,)=Var[]。
在解题之前我们确认这个规划问题的极小点是存在的。首先,目标函数(也就是方差)是一个凸函数:对于任何两个随机变量 X 和 Y 有
步骤 (∗) 是因为
在此之上,规划问题的可行集
是由两个线性约束决定的,因此它是一个凸集。根据数学规划简介所述,一个凸函数在一个凸集上必定有极小点,即
是有解的。以上逻辑所涉及到的理论会在以后的凸优化文章中更详细地解释。下面我们着手解决上述规划问题。根据拉格朗日乘子定理,我们定义函数
并计算它的各个偏导,
上面的第一条可以改写成矩阵的形式,表示为
将梯度 ∇L设为 0,即
假设 Σ 是可逆的,由 (1) 可以得出 w 与 和 的关系
下面还需要解出 和 根据 (2) 和 (3) 两个等式,又有
代入 (†),有
这里注意因为协方差矩阵 Σ 是对称的,根据线性代数和对称矩阵的一些基本性质,有.
上面的两个等式可以写为矩阵形式,即
那么,如果我们设
可以解出然后利用 (†) 的等式
就可解出梯度函数 ∇L 的一个零点 ;如果矩阵
和 Σ 都是可逆的话,根据矩阵的列秩的性质, 便是 ∇L(w,,)=0的唯一解。我们知道原规划问题是有极小点的,根据拉格朗日乘子定理那些极小点都是 ∇L 的零点,然而如果 ∇L 只有一个零点 ,那么 必定是规划问题的唯一极小点。接下来我们需要确认和 Σ 在什么情况下是可逆的,并且对于不可逆的情况给出解决方法。在这一节中我们将发现有两个假设可以保证矩阵 Σ 和
的可逆性。它们是:1.如果任何一组风险资产都不能配置出无风险资产,那么 Σ 是可逆的,即公式 (†) 成立;
2.如果不是所有风险资产的收益率期望都是相等的,那么
是可逆的,即公式 (††) 成立。接下来将展示上述结论的推导,这需要使用正定矩阵和半正定矩阵的相关理论。在线搜索方法的文章中我们介绍过正定矩阵和半正定矩阵的定义,这里重温一下:
定义. 设 A∈是一个对称矩阵,即 =A。如果对于任何一个 x∈ 都有 Ax≥0,那么 A 是一个半正定矩阵 (positive semidefinite matrix)。如果对于任何一个 x∈∖{0n}都有 Ax>0,那么 A 是一个正定矩阵 (positive definite matrix)。
首先我们考虑协方差矩阵 Σ。根据概率论的基础理论,任何的协方差矩阵都是一个半正定矩阵。我们需要用到线性代数的理论中关于半正定矩阵可逆性的命题:
定理. 设 A∈ 是一个半正定矩阵,那么下面两个陈述是等价的:
1. 存在;
2. 对于每一个 x∈∖{0n},都有 Ax>0。
假设半正定矩阵 Σ 不是可逆的,根据以上定理,可以找出某个非零的 w∈ 以满足 Σw=0。那么有
那么,按照 w1,…,wn 的比例配置 (r1,…,rn),会得到一个零方差的随机变量,对应着一个无风险的投资组合。这种情况可以在下一篇的有无风险资产的 MPT 模型中解决;本篇中不妨假设无风险资产不能由风险资产配置得来,这样 Σ 必定是可逆的。
接下来我们需要保证矩阵
是可逆的。根据行列式的定理,只需要证明 −ac≠0 即可。首先,我们需要假设 a1n−br≠0n。这是一个合理的假设,因为如果上述的差等于零,那么所有的 都是相等的,也就是说所有的风险资产的收益率都是相同的,很显然这在现实中是几乎不可能发生的,这种情况也会导致有效前沿变成一条横向直线而不是一条曲线。
根据前一段的结论,我们知道 Σ 是一个正定矩阵,并且根据下面的定理,
定理. 如果 A∈是一个正定矩阵,那么 也是一个正定矩阵。
可以得知 也是正定矩阵。
那么根据正定矩阵的性质和 a1n−br≠0n 的性质,有
由此可见 ac−b^2≠0,得知
是可逆的。有效前沿
在马科维兹优化问题中,给定每一个期望收益率 μ 都有一个对应的最小标准差 σ(μ),所有这些 (μ,σ(μ)) 的二元组构成了一条曲线,叫做有效前沿。接下来我们将计算出这条曲线的公式。
根据第二节中的拉格朗日乘子方法,标准差最小的配置权重向量满足
于是有
再代入
的结论,有
那么得出有效前沿的公式
最小风险组合
下面我们计算有效前沿上风险最小的组合。为了寻找函数 σ(μ) 的极小点,我们取其导数并将导数设为 0,
由于 σ(μ)>0,那么上面等式成立当且仅当 cμ=b,也就是说最小的标准差存对应着收益期望 μ=b/c,将这个数代进马科维兹优化问题就可以算出最小方差组合的权重了。
为了举例的简便性,我们只选择五个风险资产进行计算。这五个资产是从沪深 300 成分股中随机选出的五支股票,使用两年的日收益率数据来计算收益率和标准差和协方差。这五支股票的日平均收益率和日收益率标准差分别是
这些数据放到标准差-均值坐标图上如下图的蓝色三角所示,图中的粉点是同期其他的沪深 300 成分股作为参考对比。
并且,我们计算这五支股票收益率的协方差矩阵为
使用 Numpy 计算 a,b,c 的值:
那么计算出有效前沿曲线的公式为
在 (σ,μ) 坐标图上的曲线如下
同时,我们也可以通过穷举列出一些加和为 1 的权重向量,让后计算按照这些权重配置出的资产组合的标准差和收益预期,并将这些数据也画在坐标图上,得到下面的图。图中的蓝线是之前算出的有效前沿,圆圈是穷举出的组合,五个蓝色三角形对应的是五个原生股票。
可以看出,所有的组合都在有效前沿的右边,并且标准差最小的组合正好就在有效前沿上。
下面我们想计算整个有效前沿上风险最小的投资组合。根据之前的分析,我们知道最小标准差组合的收益期望是
那么建立马科维兹优化问题
我们用公式 (††) 先计算出拉格朗日乘子的值
然后再使用公式 (†) 计算出权重向量
这个向量代表着五支股票配置的权重比例,其中第五支股票的权重是负数,说明需要做空。
接下来计算这个组合的期望收益和标准差,有
以及
将 (1.908×,2.477×) 的点画在坐标图上,是下图中的红色猩猩,
它的确是在整个有效前沿曲线的最顶端,这就对了。
结语
本文使用拉格朗日乘子法解决了没有无风险资产的 MPT 模型的优化问题,算出了最小方差组合以及有效前沿还有的闭合式公式,以此进行计算要比穷举和使用蒙特卡罗法更快也更准确。在本系列的下一篇文章中,我们将使用拉格朗日乘子法来解决有无风险资产情况,计算出资本市场线的闭合公式,分析它和有效前沿的关系,并得到市场组合的计算方法。