Press "Enter" to skip to content

MSCI:捕捉因子模型非线性的收益

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

本期遴选论文
来源:MSCI Research Insights March 2021
作者:George Bonne, Jun Wang, Howard Zhang
标题:Machine Learning Factors: Capturing Nonlinearities in Linear Factor Models

 

核心观点

 

通过机器学习模型将线性因子模型中的特质收益做更细的挖掘,找出其中非线性的部分。

 

同一类模型中,由不同参数复合的机器学习模型的效果要好于单个的机器学习模型。

 

不同类模型的复合模型也优于单一类别的复合模型。

 

非线性的机器学习模型因子是一个明显的Alpha因子,能够带来稳定的增益表现。

 

多因子模型在量化投资中占据了绝对的C位,以Barra风险模型,采用截面因子暴露对股票收益率进行建模的方法在业界得到了广泛的使用,可以用非常简单的等式表示截面股票收益与因子暴露之间的关系:

 

其中是股票收益向量,是所有股票的因子暴露矩阵,是因子收益向量,是股票特质收益(没有被因子暴露解释的部分)。其中是股票收益中能被因子 线性解释 的部分。但实际上,因子之间 非线性 的关系也会对股票收益产生影响,这部分收益部分包含在里。在本篇论文中,作者对所有与构建机器学习模型,用以挖掘出  中能够被因子间非线性的关系解释的部分:

 

其中G为某个机器学习的模型, 可以看做是X经机器学习模型G合成后的因子,主要用于挖掘X因子间非线性部分,所以完整的模型如下:

 

这是一个非常有逻辑且有创新的方法,这主要体现在以下几个方面:

 

1、不同于很多的论文,直接将股票总收益与因子暴露之间通过机器学习的暴力拟合,这里先将线性收益部分剥离后,再对残差收益(或特质收益)进行建模,提高了模型的解释性。

 

2、在机器学习模型G中所使用的因子X,与线性部分使用的因子完全一样,这样就能更有逻辑的区分线性部分和非线性部分。

 

实证分析

 

数据及方法说明

 

 

测试结果

 

1、机器学习模型复杂度VS整体模型的表现

 

下图展示了三种机器学习模型在不同复杂度下的表现,Y轴是月度IC的平均值。在看懂下图时需要清楚以下几点:

 

算法复杂度的定义, 下图X轴表示了算法复杂度,从左边最简单到右边最复杂,但不同模型的算法复杂度的定义不一样:

 

Boosted Trees:复杂度表示树的深度,最简单(X轴最左边)的树为2层。

 

Random Forest:复杂度表示子树的数量,最简单(X轴最左边)的模型有50棵树。

 

Neural Networks:复杂度表示单层隐含神经元的数量,其中最简单的神经元数据为8个(X轴最左边)。

 

复杂度标准化, 标准化的复杂度是用模型当前复杂度除以模型最小复杂度的值,比如复杂度为10的Neural Networks表示其神经元的数量为最小复杂度(8个)的10倍,也就是80个。

 

复合模型, 图中虚线表示的是对应实线代表模型的复合模型的表现,当X轴为n时代表的复合模型,为x从1至n所代表的基础模型的平均值。以蓝色虚线Neural Net Ensemble为例,当X轴为3时,其所代表的Neural Net Ensemble复合模型,为Neural Net复杂度为1,2,3时的平均结果。

 

理解了以上定义,可以看到,当模型复杂度上升时,Boosted Tree和Neural Net的表现在下降,Random Forest的效果表现在上升。复合模型(虚线)的效果,总是要比非复合(实线)要好。所有模型中,Neural Networks复合模型的表现最为优秀。

 

 

下图展示了三个复合模型的表现,Y轴是分组收益Top与Bottom收益差的累计值。除了三个复合模型,还构建了复合模型的复合模型(红线表示,下文用EE做简称)。可以看出EE的表现最佳,Long/Short的年化收益为18%左右。

 

 

但是从上图也可以发现不同算法模型的表现虽然有差距,但整体还是比较相似,下图给出了不同模型预测结果相关性的平均值,具体来说就是不同模型每期的预测结果计算截面相关性,再取均值。可以看到同类型算法不同参数的相关性基本在0.35-0.55之间。但是上图2中,不同复合模型的时间序列的相关性达到了0.73以上。也就是说,不同模型间对于有效信号提取的比率差不多,但复合之后能够有效的提高信噪比。

 

 

2、模型稳定性

 

作者通过模型每个月预测值之间的自相关性来判读模型的稳定性,可以看出除了在模型重新训练的时候相关性变化比较大,其余时间,不同月份之间的预测值自相关性还是比较稳定的。

 

 

3、探索机器学习模型的可解释性:单因子的重要性

 

各个不同的因子对于效果的影响有多大,不同因子间的相互作用会不会对预测结果产生重大的影响。弄清这些问题之前,首先要有一个明确的度量因子重要性的指标,需要明白以下两个概念:

 

Partial Dependence ,用来度量单个因子对模型预测效果的边际影响,具体做法针对一个已经训练好的模型,每一次,把所有股票的某个因子(需要度量的因子)设为一个固定的值,然后对所有预测结果计算平均值(作者这里计算的标准差),接下来,改变因子的值,再计算一般,按固定间隔遍历该因子所有可能的取值。

 

Feature Importance ,定义为因子Partial Depedence的变动范围(最大值-最小值)。

 

如果一个因子不重要,那边改变因子取值时,预测结果不会有很大的变化,所以越重要的因子,对预测结果的越有影响,预测结果的变动范围就越大。

 

从下图可以看到,对这个三个机器学习模型来说,最重要的都是Liquidity和Momentum因子,整体而言量价类的因子要比基本面因子来得更重要。

 

 

下表展示了不同模型对于因子重要性的相关性,可以看出不同的模型对于因子的重要性的认知还是很一致的。

 

 

下图7把Neural Network模型中,10个最重要因子的Partial Dependence Plot(PDP)画了出来,可以看到当Momentum因子暴露高的股票的特质收益更高,而Liquidity因子暴露低的股票的特质收益更低。

 

 

在三个不同的模型中,Liquidity和Mementum的PDP非常类似,但是Tree类型的机器学习模型的PDP曲线更粗糙。在表3中,作者给出不同模型预测结果的相关性很低,但这里有给出对于因子重要性的判断,相关性又很高。这说明,不同模型都能捕捉到Liquidity和Mementum的预测能力,但对于噪音,不同模型的噪音就不一样。所以通过复合模型,能够在保留信号的同时,抵消掉部分噪音,得到更好的预测结果。

 

 

4、探索机器学习模型的可解释性:因子相互作用的重要性

 

上一部分,作者通过Partial Difference量化了不同因子各自的重要性,接下来需要量化两个因子间相互作用带来的增益效应。作者给出了因子间相互作用强度(Interaction Strength)的定义:

 

两个因子同时变动时Partial Difference 与 两个因子单独变动时Partial Difference之和的差的Range。

 

说的很拗口,举个例子说明一下,有A、B两个因子:

 

当A固定为a1时,其他因子保持原值时,partial difference为Pa1

 

当B固定为b1时,其他因子保持原值时,partial difference为Pb1

 

当A固定为a1时,当B固定为b1时,其他因子保持原值时,partial difference为Pab1

 

那幺此时由于A和B交互带来partial difference的变化为PI = Pab1-Pa1-Pb1

 

那幺AB因子对的相关作用强度所有PI中最大值与最小值之差

 

一共22个因子,所以有232个因子对,前10个相互作用最大的因子对如下图9所示,图10给出了Momentum-Size因子对的PDP。

 

 

可以看到,Momentum因子与Size有很大的相关性,当Momentum很低且Size也很低的时候,相互作用很强。

 

 

5、样本外测试表现

 

图11给出了,样本外经复合机器学习模型构建的机器学习因子与传统22个风格因子之间的相关性,整体相关性都不高,在-0.15到0.1的区间。图12是该因子与4个最相关因子以及Beta和Momentum的相关性的时间序列。Beta和Momentum的相关性均值为0附近,但整体波动比较大,而与其他因子的相关性比较稳定。

 

 

 

下图13给出了ML Factor的因子分组测试,可以看出有非常明显的单调性,多空年化收益样本内为19.7%,样本外为34.4%。

 

 

图14给出了,考虑其他22个因子后的多因子模型中,机器学习因子的纯因子收益的累计值。表15给出了各个因子测试结果的对比,机器学习因子的因子收益IR最高,最大回撤也非常小。整体而言该因子更像一个Alpha因子。

 

 

 

总结

 

针对同一套因子,通过线性收益与非线性收益的单独建模,从逻辑上支撑了机器学习在多因子模型中的应用。最终的因子表现非常亮眼,希望能给大家更多启发。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注