【054】因子投资中的机器学习
本文是因子选择专题的第 007 篇,也是因子动物园的第 054 篇独立原创研究。
本文为“搞事情因子小组”专文,禁止转载!
目录
01. 简介
02. 线性模型和预测集合
03. 非线性算法
04. 模型评估与实证研究
05. 机器学习的问题
06. 结语
1. 简介
由于机器学习的快速发展,不同人眼中的机器学习可能千差万别。在进行讨论之前,我们需要明确机器学习的含义,尤其是当其应用于因子投资领域时的含义。
2. 线性模型和预测集合
稳健回归;
惩罚回归;
降维方法;
以及
广义线性模型。
惩罚回归的典型代表则包括三种方法:
岭回归(Ridge);
LASSO ;
弹性网络(ElasticNet)。
相对于 OLS ,它们额外加入了针对高维数据的不同惩罚项,以有效应对过拟合问题。与此同时,它们也起到了筛选有效预测特征的作用。
降维方法则包括主成分回归(PCR)和偏最小二乘回归(PLS)。这两类方法可以显著降低问题的维度,从而得到更稳健的估计。
Chen et al. (2019) 提供了一个很精彩的例子。他们利用 PLS 方法从 12 个常见的情绪代表指标中提取信息以更好地刻画投资者情绪。
广义线性模型(GLM)的一类简单例子是将公司特征的高次方项加入预测模型中 。一个典型例子是 Barra 的非线性规模因子(规模的三次方)。Gu, Kelly, and Xiu (2019) 则探讨了一种更一般的模型设定:公司特征的 K 项样条函数。
更一般地,广义线性模型可用来对离散型的因变量建模。例如,考虑我们在因子研究中关心的核心问题:股票收益的排序分组结果。为此,假定我们将全部股票分为 5 组,则可以定义变量 G 代表股票所属分组,然后用 G 作为因变量,公司特征作为解释变量,建立多分类逻辑回归模型。
除了上述具体模型外,另一类重要拓展便是 forecast combination (FC)。这种方法非常简单但很有效。严格来说,它并不是一种具体的预测算法。
其基本思想其实很容易理解。单个算法不会总是有效,因此,取一系列算法的预测结果均值,可以较为有效地平滑不同算法的误差,而得到更有效的预测。特别地,FC 方法不仅可以组合线性模型的预测,也可以加入非线性模型,只要它们的预测对象相同即可。
Rapach, Strauss and Zhou (2010) 对利用 FC 方法预测整体市场的溢价有着精彩的介绍,而 Han et al. (2019) 则综合讨论了 LASSO 、弹性网络和 FC 方法在股票收益横截面分析中的应用(参见【045】Which Characteristics?)。
3. 非线性算法
线性模型虽然简单直观,但它是否能很好地反应公司特征同股票未来收益之间的关联,则要打一个问号。虽然线性模型仍占据主流,但实证资产定价和量化研究者往往将线性模型视作真实模型的一阶近似。
对于线性模型的一个质疑是其往往很难较好地描述解释变量之间的相互影响。为此,作为一种简便易行的替代法方法,分类回归树得以日益受到重视。
决策树是一种分类算法,其结果是给出一系列有序的判定规则,依据特征将观测分类标记。它可以很好地刻画特征与因变量之间的非线性关系。
特别地,经典的决策树往往用于处理因变量为分类变量的情形。当因变量为连续变量(例如,因子研究中的核心变量股票下月的预期收益)时,便构成了回归树。
当然,回归树本质上仍然是分类算法,因此,显然,它给予被分为同一类型的观测的预测值是相同的。具体而言, 对于被分为同一类的观测,用它们的均值作为每个个体的预测值。
Gu, Kelly, and Xiu (2019) 对此给了一个很形象的例子。考虑依据规模和价值来构建回归树对股票收益进行预测。当一支股票的规模大于 0.5 时,直接将其归入第 3 类。当一支股票的规模小于 0.5 时,进一步考察其价值,若价值小于 0.3 ,则为第 1 类,反之为第 2 类。对每一类股票,均取该类股票的平均收益为其下月收益的预测。
就我们的目的而言,重要的有两点。首先,回归树可以很容易地将解释变量间的交互影响考虑进来,一个 K 层的树结构,可以包含 K-1 层交互效应,这是线性模型所不具备的。其次,树方法不受解释变量的单调变换的影响,因而可以很好地包容非线性特征。
但回归树方法如此灵活,使得它特别容易陷入过拟合的怪圈,这也恰恰构成了其最大的瓶颈。因此,为了尽可能规避相关的潜在问题,引入正则化方法进行适当限制是很有必要的。常见的正则化方法包括 boosting 算法和随机森林(random forest)。
严格来讲,boosting 是一类框架算法,它以一系列高度简化的分类树为基础,通过反复的迭代训练,生成很多个基分类器,再组合不同基分类器的预测,以得到最终的预测。
换言之,通过组合若干个弱分类器,最终得到有较好预测效果的强分类器。这一逻辑与第 2 小节介绍的 FC 方法是非常类似的。
Boosting 最早的代表是 adaBoost 算法,随后则发展出了诸多衍生算法,其中以时下非常流行的 GBDT 和 XGBoost 算法最为出众。
AdaBoost 在每次迭代时,依据前一次的预测误差来更新样本的权重,预测错误的样本会得到更高的权重。
GBDT(梯度提升树) 也遵循类似的前向分布算法,但与 adaBoost 有两处显著的不同。首先,GBDT 算法中,弱分类器只能使用回归树模型。其次,GBDT 算法的建模对象是上一步的拟合残差。
举个简单的例子,假设第一步发现一支股票有很小的规模,因而给予了其 1.2% 的月度收益预测,但我们发现其真实收益为 3.0% ,因此,第二步中,我们依据其价值特征对规模未能解释的残差收益(1.8%)进行分析。GBDT 在实践中的表现是非常不错的,但也面临一些局限,例如,它不能很好地处理稀疏数据问题。
相比之下,作为近几年新兴起的算法,XGBoost(极端梯度提升树) 在这些方面有针对性的改进,并在数据挖掘大赛中获得了非常优异的表现,以及广泛的应用和关注。
与 boosting 方法相对应的则是 bagging 方法。与 boosting 算法需要按顺序进行迭代不同,bagging 算法可以并行进行多次训练,每次训练中,都用 bootsrap 方法抽取出一个子样本并据此训练模型,最终将多次训练结果平均,得到最终的预测。对于分类问题而言,bagging 方法的一个典型例子便是随机森林(random forest)。
SVM(支持向量机)是另一类重要的非线性算法。与通常的算法旨在通过降维解决维数灾难问题不同,SVM 某种程度上可谓反其道而行之,通过将低维问题映射到高维空间,SVM 可以高效地找到间隔最大的超平面,从而对数据进行有效的划分。
最后一类重要算法则是神经网络。作为深度学习的基础,神经网络大概是最为有效的机器学习算法。
具体而言,神经网络通过组合多个层次的简单模型,来得到最终的预测,其中,初始的是输入层,即预测变量原始数据;最后的是输出层,即最终的预测结果;而中间则是隐藏层,如果有的话。
某种程度上,这与前述 boosting 方法是类似的。特别地,神经网络中的单个模型往往更加简单。但与此同时,通过多层网络,深度神经网络常常可以利用这样简单的基础函数,得到非常好的表现。
进一步,在神经网络的基础上,便有了当下日益流行的深度学习算法。深度学习主要是一系列深层神经网络,不仅包括典型的 DFN(深度前馈神经网络),也包括 RNN(循环神经网络)和 LSTM(长短期记忆模型)。
在训练神经网络时,常用的方法是通过最小化预测误差的 L2 范数形式惩罚项来估计权重参数。相比于前文介绍的树方法,神经网络的训练有一个优势,那就是在每一步训练中可以同时更新所有的模型参数。
但神经网络的高度非线性特征和巨大的参数量,使得其计算非常复杂,且需要更多的正则化处理以避免过拟合。因此,SGD(随机梯度下降)方法往往被用来训练神经网络,通过牺牲一定的精度换取计算效率的大幅提升。
此外,诸多正则化方法被引入,例如学习率收缩、提前停止、批标准化和集成学习。详细的介绍请参考 Gu, Kelly, and Xiu (2019) 。
Dixon and Halperin (2019) 给了一个利用机器学习,特别是神经网络进行因子研究的基本流程:
首先,在每月末,用股票的一系列经标准化的公司特征作为输入层。
然后,利用样本训练了一个神经网络模型,来预测股票下一月的收益。
与此同时,在每月末还训练一个 OLS 回归模型作为比较基准。
最后,通过对比基于神经网络和 OLS 模型的选股策略的业绩,来评估神经网络模型是否可以提供显著优于简单线性回归模型的表现。
4. 模型评估与实证研究
即以历史均值预测为基准,比较候选模型是否有更小的样本外均方误差。显然,该指标可以为负,即模型的预测能力还不如历史均值预测。
Welch and Goyal (2008) 和 Campbell and Thompson (2008) 据此检验了诸多变量对市场总体表现的预测能力。但对于预测个股收益而言,历史均值预测往往表现非常糟糕。
因此,Gu, Kelly, and Xiu (2019) 指出,应用零收益预测取代历史均值预测作为基准模型。相应地,新的样本外 R^{2} 定义如下:
其中,\tau_{3} 表示数据集为样本外测试集,而下标 i 表示第 i 支股票。
Gu, Kelly, and Xiu (2019) 指出,若仍然采用历史均值预测作为基准,则所有候选模型的样本外 R^{2} 都会上升大约 3% ,因此,在评估个股收益预测模型时,若沿用历史均值预测作为基准,可能得到具有明显误导性的结论。
除此之外,Gu, Kelly, and Xiu (2019) 还进一步参照 Diebold and Mariano (2002) 定义了统计量(两个模型经标准化的样本外均方误差差异)来评估两个模型的相对表现。
基于 1957 至 2016 年间长达 60 年的美股数据,Gu, Kelly, and Xiu (2019) 仔细研究了不同模型的表现。
他们考虑了 94 种公司特征和 8 个宏观变量(参见 Welch and Goyal (2008))及它们的交互项,还有 74 个行业分类,得到总共 94 x (8 + 1) + 74 = 920 个特征。
在此基础上,他们研究了 13 个模型,包括:
6 个线性模型,即包含全部特征的 OLS 回归模型,只包含规模、账面市值比和动量的 OLS 回归模型,PLS , PCR ,弹性网络,以及带 group LASSO 的 GLM 模型。 2 个树模型,包括随机森林和 GBDT 。 5 个神经网络模型,分别包含 1 到 5 层隐藏层。
对于 OLS 、弹性网络、广义线性回归模型和 GBDT ,他们考虑了前文介绍的 Huber 稳健估计量。
基于全样本和样本外 R^{2} 分析,他们发现:
OLS 的表现非常糟糕,尤其对大盘股而言。
弹性网络等方法,通过添加额外的惩罚项,表现得到了显著的提升。
GBDT 和随机森林表现也不错。
但表现最好的非线性模型还是神经网络,尤其是带 3 层隐藏层的神经网络。
模型间的两两配对比较则清晰地表明:
所有带约束的线性模型,表现都显著优于普通 OLS 。
降维方法和惩罚性回归模型的表现没有明显差异。
树模型表现相比线性模型更好,但差异并不显著。
神经网络表现显著优于线性模型,但相对树模型的改进则不够显著。
除了比较不同模型的表现外,前述实证分析还有一个非常重要的副产品,那就是可以比较不同特征对于股票定价的重要性。
特别地,作者们将所有公司特征分为四大类:
趋势类特征,例如各种动量和短期反转;
同流动性有关的特征;
风险测度指标;
以及基本面特征。
他们发现线性模型普遍高度倾向趋势类特征,而非线性模型则会较为平均地关注多种公司特征。总体而言,趋势类特征的影响是最为显著的。
他们也分析了不同宏观变量的影响,并发现几乎所有模型都认为市场总体的账面市值比非常重要。此外,线性模型非常强调债券市场相关因子,例如信用利差和利率水平。而非线性模型则会更多考虑线性模型没有关注的变量。
此外,也有学者研究了机器学习算法在中国 A 股市场的表现,并有较为类似的发现。
总体而言,带约束的线性模型表现优于 OLS ,非线性模型又优于线性模型,尤其是深度前馈神经网络(DFN)和 XGBoost ,表现非常出色。此外,利用集成学习整合不同模型,可以进一步提升模型表现。
而在特征重要性方面,已有研究表明,在 A 股市场最为重要的是交易摩擦类/流动性相关因子,这与美国市场的情况有所差异。
5. 机器学习的问题
通过模拟生成多条(更长周期的)资产价格路径并分析不同场景下的表现,可以改善在历史价格路径上反复测试的问题。
此外,利用多重检验(multiple test)也可以改善上述问题。
通过确保训练集和测试集在时间区间上没有交集,可以改善前述交叉验证可能遇到的问题。
使用平减 Sharpe 比率( deflated Sharpe ratio)则可以部分解决常规 Sharpe 比率可能高估策略表现的问题。
6. 结语
总体随着数据和算法的发展,近年来,机器学习算法在因子投资领域得到了更广泛的应用。特别地,考虑到预测股票未来表现和筛选重要的公司特征是因子投资和实证资产定价领域的核心问题,有监督学习算法便是最受关注、应用最多的算法。
特别地,典型算法包括对线性回归模型的扩展,也包括回归树和神经网络等非线性算法。已有研究表明,机器学习算法的确可以提升模型的预测能力:扩展的线性模型表现好于 OLS ;树模型等非线性算法也优于线性模型,虽然差异普遍不显著;而神经网络的表现则显著优于各种线性模型,但跟树模型相比,优势则不明显。
当然,在应用过程中,机器学习模型也存在一些问题,尤其是算法可能缺乏解释性,且有较大的过拟合风险。幸运的是,这些问题都是可以改善甚至解决的,关键是在建模过程中有意识地注意。
总体而言,机器学习在因子投资领域的应用仍处在早期阶段。而随着数据和算法日益成熟,随着研究者更加稳妥地应对这些问题,机器学习在未来应当可以在因子投资研究中扮演更重要的角色。当然,机器学习归根到底是一类数据模型方法,要在实践中发挥作用,仍有赖于对业务领域知识的理解。
因此,我们有理由期待机器学习扮演更重要的角色,但同时,我们也相信,机器学习的出路在于与已有方法结合,而非取而代之。
历史推荐
文章索引:因子投资小册子
研究方法论:【027】追寻因子的足迹:分类、构造与检验
因子选择:【045】Which Characteristics?
机器学习:【041】机器学习驱动的基本面量化投资
搞事情小组:搞事情深度研究| 异质波动率之谜
故事分享:真实故事| 艰难的 2019,我是如何赚到 1000 万和 200% 的
实证研究:【043】基本面动量在 A 股
另类因子:【053】油价波动与股票收益
低风险因子:【018】低风险异象靠谱吗?解释与批判
动量因子:【010】横截面动量那些事
Breiman, Leo, Jerome Friedman, Charles J Stone, and Richard A Olshen. 1984. “Classification and regression trees.” CRC press. Campbell, John Y, and Samuel B Thompson. 2008. “Predicting excess
stock returns out of sample: Can anything beat the historical average?” Review of Financial Studies, 21(4): 1509–1531.Chen, Jian, Guohao Tang, Jiaquan Yao, and Guofu Zhou. 2019. “Investor attention and stock returns.” Available at SSRN 3194387.
Diebold, Francis X, and Robert S Mariano. 2002. “Comparing predictive accuracy.” Journal of Business & Economic Statistics, 20(1): 134–144.
Dixon, Matthew Francis, and Igor Halperin. 2019. “The four horsemen of machine learning in finance.” Available at SSRN 3453564.
Giglio, Stefano, and Dacheng Xiu. 2017. “Inference on risk premia in the presence of omitted factors.” National Bureau of Economic Research.
Gu, Shihao, Bryan Kelly, and Dacheng Xiu. 2019. “Empirical asset pricing via machine learning.” Review of Financial Studies, forthcoming.
Han, Yufeng, Ai He, David E Rapach, and Guofu Zhou. 2019. “Firm characteristics and expected stock returns.” Working paper.
Harvey, Campbell R, Yan Liu, and Heqing Zhu. 2016. “…and the crosssection of expected returns.” Review of Financial Studies, 29(1): 5–68.
Kozak, Serhiy, Stefan Nagel, and Shrihari Santosh. 2020. “Shrinking the
cross-section.” Journal of Financial Economics, 135(2): 271–292.Newey, Whitney K, and Kenneth D West. 1987. “A simple, positive semi definite, heteroskedasticity and autocorrelation consistent covariance matrix.” Econometrica: Journal of the Econometric Society, 703–708.
Rapach, David, and Guofu Zhou. 2019. “Sparse macro factors.” Available at SSRN 3259447.
Rapach, David E, Jack K Strauss, and Guofu Zhou. 2010. “Out-of-sample equity premium prediction: Combination forecasts and links to the real economy.” Review of Financial Studies, 23(2): 821–862.
Welch, Ivo, and Amit Goyal. 2008. “A comprehensive look at the empirical performance of equity premium prediction.” Review of Financial Studies, 21(4): 1455–1508.