查看原文
其他

深度 | Barra协方差矩阵Eigen-Adjust调整的中国市场检验

WindQuant 万矿 2023-02-15

 旗下高端量化云平台

近期热文:

■ 2019年第一季度券商金工研报榜单出炉!

 无考试,亦学习!WQFA课程无限制开放!

 别花钱了!别花钱了!别花钱了!


作者:周飞鹏

未经Wind允许,禁止转载


摘要

本文是Barra协方差矩阵Eigen-Adjust调整(Jose Menchero, Jun Wang, D.J.Orr, 2011)的中国市场检验。我们测试了A股市场上四种资产或组合的预期波动与实际波动的偏差,并发现特征因子组合(Eigenfactors)以及利用有效前沿(Markowitz, 1952)计算的最优组合,波动率偏误较大,存在较严重低估真实波动率的情况

我们接着用Eigen-Adjust方法对协方差矩阵进行调整,检验了利用调整后的协方差矩阵所构建的最优化组合以及特征因子组合,发现其预期波动率与实际波动率的偏差被大幅消除。最后我们根据偏差统计量测试了模型中不同放缩系数的调整效果。


实证检验证明了可以利用Eigen-Adjustment消减协方差矩阵估计的偏误,对于提高资产配置的样本外表现具有重大意义。同时,本文中的资产也可以用因子替代(某因子收益率即为纯因子组合),在利用因子投资的过程中也可以利用该方法对因子收益率协方差矩阵进行调整以大幅降低估计的偏差。


引言

对资产收益率协方差矩阵的估计是许多资产配置问题中的核心命题。马克维茨(1952)提出的均值-方差框架在开创定量研究上取得成功,但同时在应用过程中也常受质疑,其中最大的问题在于资产预期收益率以及协方差矩阵的估计常与现实存在较大偏差。比如,有学者指出,均值-方差框架的优化器(Optimizers)实际上是“误差最大化器”,最优化过程倾向于把更多的权重放在预期收益率估计误差最大的资产上,导致样本外表现较差。类似的,优化器倾向于把大量的对冲性头寸放在样本内有高度相关性同时收益差又较低的资产上,若相关性在样本外难以持续,组合风险将大于预期


因此,如何获得更准确的收益、协方差矩阵的估计成为能否应用均值-方差框架的核心问题。Jose Menchero, Jun Wang, D.J. Orr(2011)基于矩阵特征分解以及Monte Carlo模拟的方法提出一种对协方差矩阵的调整手段,称之为Eigen-Adjusted Covariance,并在美国权益市场上的回测中检验了其具有良好的消减估计偏差的效果。


本文将介绍Eigen-Adjustment的原理及过程,同时在中国A股市场上检验其调整效果。


四种组合的波动率偏差统计量

我们首先会基于50只股票构建四种组合,并计算超过12年的范围内、四种组合的波动率偏差统计量。


这50只股票筛选方式为:2019年1月23日自由流通市值最大、且2006年以来都有数据、剔除(广发证券:000776.SZ)后的前50个公司(剔除“广发证券”原因是其在2006年初波动率异常)。整个回测区间为:2006年1月1日-2019年1月23日。



样本协方差矩阵

股票收益率采用相对“市场”超额,此处的“市场收益率”为50只票的自由流通市值加权:



我们采用周期T=200个交易日滚动计算资产协方差矩阵V0,计算方式如下:



我们记n=0时为市场收益,即:



偏差统计量

Menchero(2011)定义了一种波动率偏差统计量,计算方式如下:


记Rt是t日组合收益率,σt是在t日开始时对组合波动率的预测值,则可计算一个标准化的收益:



偏差统计量即由该标准化收益的标准差表示:



τ为测试窗口的天数,等于总回测区间交易日数减去协方差矩阵的滚动周期所含交易日数。


该偏差统计量代表了已实现波动率与预测波动率的比值,若预测精准,我们期待B≈1。但B永远不会等于1,通常会按给定置信水平找到一个置信区间,在正态性假设以及精准预测下,Menchero给出95%置信区间大概为



但是真实的金融数据往往是厚尾的,落入置信区间的样本为减少;同时,不会有准确预测,因此前面给出的置信区间也过于严格。但我们不会围绕B是否等于1做过多讨论,我们的重点是使用该统计量去观察过大的B侦测到的风险预测中过大的系统偏误。


个股

我们首先考察个股在回测区间内的波动率预测偏差统计量,每天收盘收益即t日收益率,前一天收盘后计算的过去200个交易日标准差即为t日开始时预测波动率,由此计算50个股票和市场组合的偏差统计量,如图1显示,股票按整个回测区间内已实现波动率的升序排列。可以看到偏差统计量几乎都在1附近,说明在个股层面上,样本协方差矩阵V0(此处其实就是标准差)提供了很好的预测准确性。



随机组合

接着,我们测试100个随机组合的波动率偏差。组合收益由下式给定:



fnt为股票n在第t天的收益率(相对市场超额),εln为随机组合l中股票n的权重,为从标准正态分布中抽样得到的随机数,并且强制限定当n=0,即市场组合,εln=0。得到随机权重后,每组内权重再进行Z-SCORE标准化,这样每个随机组合就是零额投资的。


图2展示了这100个随机组合(按整个回测区间内已实现波动率升序排列)的波动率偏差统计量(计算时,组合在某天的预期波动率由过去T=200天内股票收益率协方差矩阵以及股票权重向量得到),可以看到,绝大多数的组合偏差接近于1,说明对于随机组合来说,协方差矩阵对组合波动率有较好的预测能力



特征因子组合

首先给出“特征因子组合”(Eigenfactors)的定义。


给定一个样本内协方差矩阵V0,对其进行特征分解,即可得到一个由V0的特征向量构成的方阵。该方阵中每一列为一个V0的特征向量,即为一个特征因子组合在个股上的权重。即一个特征向量代表了一个特征因子组合(Eigenfactors)。


由特征分解的结果可知,这些特征因子组合之间的相关性为零(𝚲 = 𝐐𝑽0𝑸𝑻),特征因子组合间的协方差矩阵在非对角线元素上为零。


特征因子组合的经济学意义并不明显(考虑其权重代表什么?),但是Menchero指出,它们在组合优化的过程中扮演重要角色。例如,第一个特征因子组合,实际上是最小化组合方差问题在权重和为1的约束下的解;而与之对应的,最后一个特征因子组合是在最大化组合方差上的解。


这实际上在暗示我们通常我们对最优化组合风险的低估来源于特征因子组合(即特征向量)。为深入研究,我们计算了50个特征因子组合(协方差矩阵的维数应该等于特征向量数目),在整个回测周期上的偏差统计量,结果如下图。



可以看到特征组合的波动率偏差与序号有明显负相关性,最左端的特征组合是最小化方差的解,存在着对真实波动率的严重低估,而最右端为最大化方差组合,存在对真实波动一定程度的高估。总体上,特征组合的波动率偏差统计量偏离1较远,且实际中我们常使用最小方差作为组合优化的目标函数,而测试结果证实了这种做法确实会低估真实波动,这是我们最为忧虑的。


最优化组合

前面我们提到特征因子组合与最优化的结果有着某种联系,但每个组合的经济意义依旧不是非常明确,因此这里我们直接研究最优化给出的组合中是否存在用预测波动率会产生较大的偏误。


由于真实股价数据已经给定,在特定约束条件下我们只能找到一个最优组合,这对研究偏误是不够的。为了研究多个最优组合,我们依然采用产生随机数的方法模拟产生最优组合。


在真实股价给定的情况下,为了生成100个最优组合,我们需要有与之对应的100个预期收益率,对应100种情境;而预期协方差矩阵则都是用同一个,即由真实股价滚动计算得到的V0。


我们随机生成100个alpha信号:



等式右边第一个参数是第j个组合第n个股票的预期收益率(常数),从标准正态分布中抽样得到;


等式右边第二个参数是组合j在第t天截面上所有股票的等式右边第一个参数市值加权均值。


等式右边整体即得组合j中股票n在t日的alpha:等式左边。


我们随即利用样本协方差矩阵V0以及预期收益率:等式左边,在组合alpha即ω‘α=1的约束下构建最小方差组合。根据Grinold and Kahn(2000),在组合收益为1约束下的最小方差组合权重由下式给出:



V即样本协方差矩阵,α为等式左边构成的列向量,即各股预期收益向量。


这样就得到了100个最优化组合在每天各股上的权重,继而可计算每个组合当日的收益率Rjt:



hjnt为最优权重,fnt为各股当日真实超额收益。


此处需要思考一下这个过程。100个组合中,每个组合内各股的预期收益率向量是随机产生的,但产生后就是“常数”(实际上并非常数,差别来源于与每日股票市值变化导致的α-jt变化),这一步实际上是用相对固定的预期收益率来区别100个组合。同时,也许会有疑惑,为什么预期收益率是模拟产生的,计算最优化结果的另一输入——协方差矩阵用的又是真实样本协方差阵,且计算组合收益时又用个股的真实收益率?其实这不难理解。模拟值的意义是,假设在某种情境下,我们的各股具有模拟出的预期收益率,但是真实股价相当于是抽样,其样本均值不一定要与预期收益率相同。样本协方差矩阵其实代表了相关性与波动率,用协方差阵和预期收益率,即可确定各股的预期分布,真实股价是此分布的抽样。前文提到均值-方差框架的两个输入量:收益、波动的估计不准导致最优化结果不理想,所以我们此处做的就是假设预期收益是正态的也是“准确的”,只留下波动的预期由样本协方差确定,相当于控制变量,我们便可针对性地研究由于波动率估计不准确带来的偏误。


利用Rjt及协方差矩阵便可计算波动偏差统计量。


下图为100个最优化组合的波动率偏差统计量(中位数:1.503),可以直观地看到几乎所有组合的样本协方差矩阵都严重低估了组合的真实波动率,因此不难想象这些最优化出来的结果在样本外不会带来太好的表现。



Eigen-Adjust消减协方差偏误

用数值模拟估计特征因子偏误

前面我们看到不论是特征因子组合还是最小方差组合,样本协方差对组合波动率的估计有系统性的偏误,主要体现为低估真实波动。因此我们考虑对样本协方差进行调整以尽可能消除这种偏误,具体的,我们从协方差阵的特征因子组合也就是矩阵的特征向量矩阵入手研究,期望通过对特征组合的波动率调整,以达到对协方差阵的调整。


Menchero(2011)指出,我们可以通过数值模拟的过程,假定样本协方差代表真实的波动率,也就是预期波动率,统计在预期波动率给定的情况下,模拟出的“样本协方差”与预期波动率的偏差,并利用这种偏差反过来对样本协方差进行调整。这是因为Menchero发现模拟出来的“样本协方差”与真实样本协方差(即模拟过程中的预期波动)间的偏差,和真实样本协方差与真实波动率间的偏差极为相似。基于此,数值模拟过程可以用以消除特征因子组合的波动率偏误。


对协方差阵调整的过程

前面我们说明了数值模拟过程可以用以消除特征因子组合的波动率偏误,那么本能的,我们就想用这种方法对协方差矩阵进行调整,并检验基于调整后协方差阵构造的两种资产组合(特征因子组合、最优化组合)的波动率偏差统计量,是否被有效调整至1附近。


调整过程如下:

1、首先用收益率向量f(N×T)计算样本协方差矩阵V0(N×N)的无偏估计。



2、对V0特征分解得到特征因子组合U0(N×N)、及其协方差矩阵D0(N×N)。D0是对特征因子组合协方差阵的无偏估计。



3、此时,我们暂时假设样本协方差阵V0是“真实的”收益分布,那么D0就是“真实的”特征因子组合协方差阵,继而可以利D0用产生m组特征因子组合的收益率矩阵bm(N×T)。bm中第k行元素从N(0,D0(K))中抽样得到,D0(K)是D0对角线上第k个元素。继而计算拟合出的特征因子组合收益率:



4、易知,模拟得到的收益率fm的真实协方差阵应当就是V0,但由于抽样误差,对应协方差估计值为:



5、Vm依然是V0的无偏估计量,同样对其进行特征分解,Um为模拟的特征因子组合:



6、由于我们已知“真实的”股票收益率协方差是V0,便可以通过反Um过来计算特征因子组合的“真实”协方差D~m:



7、由于Um并非“真实”特征组合,D~m不一定是对角矩阵,此处我们不研究非对角线元素,只研究每个特征组合各自的方差与“真实值”有何不同。为了消除偏误,我们首先计算所有拟合中,某个特征组合波动率的平均偏误:



M是模拟总次数。


8、每次模拟我们是有正态性、平稳性假设的,真实金融数据则不满足以上两点,因此实际中,为了计算真实的“经验波动率偏误”,还需对λ(k)进行调整。而这里,我们就选取最简单的放缩方式:



a是一个经验系数,可以通过测试最终调整结果的好坏来确定,见附录。由于我们担心低估真实波动率,所以对模拟出来的波动率做一定倍数的放大处理。


9、我们认为V0相对真实协方差的偏误,与Vm相对V0的偏误相同。故可通过调整特征组合协方差D0,再将调整后D0的变换回股票协方差:



V~0即最终调整后的股票收益率协方差矩阵。


调整后协方差构建的组合波动偏差统计量

接下来,我们测试Eigen-Adjust方法对于消除协方差偏误是否有效。具体的,我们依然计算组合的波动率偏差统计量,计算方式与前文相同,不同的是构建组合过程中,以及计算偏差统计量过程中使用的协方差矩阵一律替换为Eigen-Adjust调整后的协方差。


做法上,我们对每天的样本协方差矩阵进行Eigen-Adjust调整,每次调整中蒙特卡洛模拟次数为300,放缩系数采用2.36(见附录)。


特征因子组合

我们首先考察特征因子组合。使用调整的协方差阵后,与基于样本协方差的组合相比,改善效果较明显。虽然仍有部分组合的偏差统计量离1有距离,但大部分特征组合的偏差已处在1附近,尤其是此前倾向于低估真实波动的组合调整后低估被消除。由于特征因子组合的经济意义并不直接,而我们最终关注的是最优化结果是否存在明显波动估计偏误,因此在下节我们还将测试最优组合(最小方差)的调整效果。



最优化组合

我们接着考察特征调整对于组合寻优的意义。使用调整的协方差阵后,改善效果十分直观。与基于样本协方差的组合相比,100个最小方差组合的波动率偏差直线下降,均处于1附近(均值1.024,在以计算偏差统计量的时间窗口t=2975计算的+-(2/t)^2误差范围内;见附录),说明最小方差组合对波动率的低估被有效消除,这对资产配置、提高优化组合在样本外的表现有极其重要意义。



附:不同放缩系数𝒂下的偏差统计量

我们测试了Eigen-Adjust第8步中不同放缩系数下,协方差的调整效果。


具体的,我们令α∈[1.00,2.60],步长0.08。分别测算每次最优组合波动率偏差统计量的均值与标准差,结果如下表。由于我们担心的是最小方差组合会低估真实的波动率,而放缩系数是对协方差的方所调整,因此理论上在合理范围内,越大偏差统计量应当越小,而结果也证明了这一点。前文提到了,即使完美的调整也无法让偏差统计量等于1,即使在正态性、平稳性假设下,偏差统计量的95%置信区间是+-(2/t)^2,t是偏差统计量计算区间的交易日数。从均值来看,当=2.36时,偏差统计量已在此范围内。


引用

1. Markowitz, Harry. 1952. “PortfolioSelection.”Journal of Finance, vol.7:77-91.

2. Menchero, Wang, Orr. 2011. “Eigen-AdjustedCovariance Matrices”MSCI Barra ResearchPaper, No. 2011-14

3. Grinold, and R.Khan. 2000. Active Portfolio Management. New York:McGraw-HILL.



WQFA 英文全称 WindQuant Quantitative Finance Analyst。由万矿联合众多金融机构以及高校,共同开展的一项专业量化人才培养计划。


— End —


 是  唯一一个面向互联网的量化平台,全网用户可登录网页版免费使用 。

Wind数据免费使用 


万矿内嵌Wind Python API数据接口。为全网用户提供全市场股票、债券、基金、商品、指数、外汇、期权等7个品种的历史日线、Tick、分实时行情数据,以及中国市场所有品种的专题统计报表和中国及海外股票板块数据、宏观数据等。



使用Wind金融终端输入WQT即可使用万矿

iWind群:463249    QQ群:1020133484

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存