多因子投资的几点注意事项


因子投资主要可以分为排序法和多元回归。排序法相对简单,单因子的话,按因子值从高到低或者从低到高排序,然后取前几只股票即可。多个因子的话,需要用到多重排序,可以进一步分为条件多重排序和独立多重排序。条件多重排序先按照某个因子排序,过滤,然后针对剩下的股票再进行过滤,然后取前几只股票。排序法由于其简单易用得到了广泛的使用。

多因子投资的另一种方法是多元回归。这里我再插个题外话,不要迷信机器学习、深度神经网络。首先,你可能没有足够的数据来训练深度神经网络(现实情况往往如此),因此陷入过拟合的风险。一个大致的判断训练数据是否足够的办法是看你的训练数据是否是满足你模型参数的5-10倍。其次,深度神经网络还有不可解释的问题,你很难知道模型为什么做这个预测,因此很难做归因分析。最后,模型并不是越复杂越好,模型和数据(或者特征)其实有一个相对的关系,你的数据越好(特征越好),模型可以越简单。深度神经网络最初被提出来很大一部分是为了代替比如人工构造的图像特征,让模型自己去提取特征。如果你的数据只是量价数据,我想不出要用深度神经网络的理由。如果是一些另类数据,那另当别论。一些关于深度神经网络可解释性的论文甚至发现,一些深度神经网络所做的只是将输入投射到高维空间,然后在高维空间做线性回归,仅此而已。

言归正传,回到多元线性回归模型。你可能听到过很多回归方法,比如时序回归,截面回归,Fama-MacBeth 回归等等。其实这些方法本质是都是线性回归模型,求解基本上可以用OLS估计(这里面有些独立性的假设不再展开)。什么时候用哪种回归,其实是和你的因子有关系,比如fama french 所用的收益因子,或者一些宏观的因子,你就只能用时间序列回归。因为在同一时间点,这些值对于所有股票都是一样的

最近看了几年前《量化课堂》的一篇关于Fama-French 多因子模型的文章。里面的实现和原论文还是稍有出入。最主要的区别在于如何选股。《量化课堂那篇》是通过alpha 来选股,假设模型是正确的,那么alpha 小于0,就说明价格被低估。我们知道任何收益模型,都是通过预估未来的投资标的的收益,然后进行配置(暂时不考虑风险模型)。多因子模型也是如此,我们通过1-t 个周期的数据估算出因子曝露之后。得到了因子收益,因子曝露,和个股的alpha,我们需要计算的是未来的,也就是t+1 时刻的因子收益和因子曝露,然后计算收益。这里面估算t+1 时刻的因子收益,有不同的方法,比如加强平均,或者用一些自回归模型,如ARIMA等。对于因子曝露,可以假设其暂时不变。随后,我们就可以估算t+1 时刻的所有标的的预期收益。在不考虑风险模型的情况下,选择未来预期收益高的标的。

还有个代码上的小细节,在计算每一期的因子收益率的时候,都需要重新选股。暂时先写这么多。最后推荐一下 石川的《因子投资-方法与实践一书》,虽然有点偏理论,花了很多篇幅再检验上面。提供的总体分析框架还是不错的。