探讨因子的本质与检验方法
1.1 探究的原因
- 因子、标签、特征是什么关系,我们买的到底是什么?
- 因子到底是什么,研究因子如何区别民科还是具备科学的方法?
- 因子如此重要如何正确的科学检验?因子分布如何看等等
- GPlean到底该学什么因子?最后产出什么因子?
论坛都有各种复现和生成因子,不仅有中金的因子手册还有阿尔法101等等,但是归根结底因子到底是什么,其检验和实战意义暂时还没人讨论,在此我讲下我的一些理解,希望大家纠错,共同进步。
1.2 因子、标签、特征的关系
- 首先是按照我们做机器学习或者大部分人的理解,特征和因子是一回事,学术界喜欢用因子,机器学习项目和互联网公司都喜欢用特征这个词,其实本质表达是一样的就是针对要预测的Y所对应的x,标签则是针对有监督学习要做的标记,希望模型学到的内容,这应该是大部分普通人的理解。
- 在金融这个领域经过共创小组内部讨论,大佬们给出了不同的解释和含义,我自己能理解的是因子不完全等同于特征,在金融领域因子包含了我们对收益的信息,里面信息含量丰富,特别是对收益的信息。所以因子不能完全等同于某个特征或者标签,在交易这个领域,如果是一个价值投资者,他研究的标的就是公司,一家公司的财务报表、商业模式和可持续性等等,买股票就是买公司,这是根本。
- 那么在量化研究领域,基本盘是什么?回测就是量化?还是程序自动化就是交易?哈哈,我在群里问过无数人这些问题,但是没人说清楚,回到因子这个话题上,我觉得因子就是量化交易的基本盘,本质上我们的一切研究都是基于因子的,我们要买的标的也是因子而不是公司。真正的量化的精髓是对于因子你有没有一整科学且体系化的检验方法和数学上的证明,就跟公司的商业模式一样逻辑硬,如果对因子没有足够的认识,仅看一个回测和跑分这个就属于民科了;
1.3 因子表现形式与演化
阶段/维度 | 截面因子(Cross-Sectional) | 时序因子(Time-Series) |
---|---|---|
1. 原始特征 | 每一期的横截面特征,描述个体与当期的横向比较:如 流通市值 、PE(TTM) 、换手率 、行业市盈率分位数 |
描述某个个体(如单只股票)在时间轴上的原始数据变化:如 close 、volume 、high-low 、daily_return |
2. 衍生指标 | 对原始数据进行横向加工,挖掘结构性相对关系:如 rank(ROE) 、zscore(净利润同比) 、个股PE / 行业PE |
对原始数据做时序变换,捕捉趋势与波动:如 rolling_mean(close, 20) 、past_5day_return 、ts_std(volume, 10) |
3. 表达式因子 | 使用DSL或Python构建组合逻辑,生成复合结构:如 zscore(ROE) / rank(市值) 、(EPS - 行业中值) * 资产负债率 |
使用时间序列操作表达未来动量/反转:如 (close - mean(close, 10)) / std(close, 10) 、ts_rank(momentum_5d) |
4. 模型内因子 | 将某一时间点所有股票的特征输入模型(如MLP/XGBoost),输出横截面得分或排序 | 将某一只股票的多时点特征输入序列模型(如LSTM/TCN),提取时间动态信号 |
5. 混合形式 | 将行业图谱、关系图、GNN输出等融合结构引入横向比较:如“行业-概念图+因子得分”联合建模 | 利用Transformer等模型处理“多资产多时间”联合输入,如“跨币种交易行为+时间序列” → 预测收益/风格 |
因子种类特别多有时序、截面、另类因子等等,我们主要介绍常用的两种截面和时序,最原始的其实就是针对图表上的图像和指标,然后衍生出了针对数据的统计与打分,在到世坤的因子表达式,等等进化到现在的AI,如果对过程感兴趣可以大模型或者找相关的资料查看。
1.4 因子检验方法论
最初是看了石川老师的因子投资这本书,里面的知识太干了,哈哈,我不照搬里面的公式和理论了,我先用大白话说说我自己的理解。
- 首先我们买的是因子,实际上是一种预测,这个因子拥有对某个周期的预测能力,这个预测能力要能够在过去几年持续,他的稳定性和预测能力要够强,这是第一步。
- 其次是这个因子选股的有效性是否稳定,信号是否强,逻辑是否强,这怎么理解呢,就是他选出来的头部和尾部是否逻辑一致,其实也就是分组是否具备单调性。
- 最后是检验这个因子能不能赚钱,前面两部只能说明这个因子够稳定,但是不能说明因子就能赚钱,这是很多人忽略的一部分包括我,能不能赚钱才是核心能力,而且这个赚钱怎么衡量?这里要在数学上能证明他赚钱是大概率的吧,哈哈。
完成以上三步,我觉得对因子就有信心去实盘,相信一个因子就像相信一个公司一样,让自己心里有数。接下来我就描述下每一步如何做,思路是怎么样的。
1.4.1 因子预测能力的检验(IC_IR)
因子的 IC 值是指因子在第 T 期的暴露度与 T+1 期的股票收益的相关系数,即
其实简单来说,就是我在时间周期算出来的因子值和对应周期+1天的收益的关系,相关性有多少,如果相关性高,那就证明存在预测能力有效,如果没有相关性就不存在预测能力,越接近1相关性越高,如果是负数那就说明是反指。
在实际计算中,使用 Pearson 相关系数可能受因子极端值影响较大,使用 Spearman 秩相关系数则更稳健一些,Pearson 相关对涨幅的绝对大小敏感,Spearman 相关只关心排名顺序,对涨幅本身不敏感。这种方式下计算出来的 IC 一般称为 Rank IC。
- 因子评价方法
a) Rank IC 值序列均值——因子显著性;
b) Rank IC 值序列标准差——因子稳定性;
c) 评价方法:全部 N 层组合年化收益率(观察是否单调变化),逐年分层是否单调.
我觉得以上三种就够了,不用在研究T检验来看是否显著。这里我举个例子让大家直观感受下,小市值深入人心,以至于在某个市场大家还是相信小市值,然后不断买入,结果半年来亏成了马,都开始怀疑人生。我做了一个IC检验,大家可以看到下面这幅图。
这是神马?这种预测能力还值得投入吗,这是妥妥的风险因子,连风格因子都算不上。所以像我这种民科嘛就是听理论说小市值好,加仓搞,其实连我们因子检验第一关都过不了,有了教训,我自己挖了一个流动性的因子,是下面这个图。
可以看到累计IC持续向下,稳得一批,这种IC才能够被我们接受,可以进到下一步。
1.4.2 因子信号有效性(分层/分组检验)
依照因子值对股票进行打分,构建投资组合回测,是最直观的衡量因子优劣的手段。就是我们对选股排序的分组依次建立一个分组,10%一组,一共10组,看看每组历年来的表现,如果第一组盈利一直最高,最后一组一直很垃圾,那这个分组的单调性就很强,很稳定,他的多空逻辑是一致的,如果出现中间乱七八糟的柱子没有单调性,说明打分排序的逻辑是漂移的,我们来看图。
像这种就很单调,做多第一组做空最后一组,相对收益很高,但也不能完全看分组图,还应该看分组的资金曲线,因为分组是一个均值,他没有时间维度,很有可能你的因子在前几年好最近两年不好,所以要看分组资金曲线,如下图。
这个曲线代表了多头的风格表现。
1.4.3 因子盈利能力的检验(回归法)
来源于研报:20190104-华泰证券-华泰多因子系列之十
回归法是一种最常用的测试因子有效性的方法,具体做法是将第 T 期的因子暴露度向量与T+1 期的股票收益向量进行线性回归,所得到的回归系数即为因子在 T 期的因子收益率,同时还能得到该因子收益率在本期回归中的显著度水平——t 值。在某截面期上的个股的因子暴露度(Factor Exposure)即指当前时刻个股在该因子上的因子值。第 T 期的回归模型具体表达式如下。
这个其实就是检验因子的盈利能力,并且用T检验对这个检验进行显著性证明,这样出来的结果才得以信服。检验的时候说几个坑点,第一个是对数据要做极值处理,之前我纠结一个问题,就是市值按道理应该直接中性化,但是log后再中性化的数据分布更好,原因就是log对极值做了处理,所以回归的时候更好了。另外就是研报中提到采用wls进行回归,而不是简单ols进行回归,也是一个重点。
因子的评价方法也比较简单:
a) t 值序列绝对值均值——因子显著性的重要判据;
b) t 值序列绝对值大于 2 的占比——判断因子的显著性是否稳定;
c) t 值序列均值——与 a)结合,能判断因子 t 值正负方向是否稳定;
d) 因子收益率序列均值——判断因子收益率的大小。
我们看个图,可以看到每个月的收益情况,大概心里有个数,如果变态点可以把β回归掉看看纯阿尔法收益。
1.4.4 因子的分布情况(直方图)
这个是当前面三关都过了,或者GP学出来的因子是什么样的,是不是有效分布(能把样本分开)、是否异常(极端值多不多)、是否有泛化能力还是过拟合出来的结果。
我举几个例子:
x是因子的值,大A一般在±3的样子,y是落在x上面的次数,图上面可以看到落在0的居多,左右变量尾部很明显,说明我们这个因子具备多空的选股能力,能区分出来而且尾部比较长,右边特别长,可以做多头交易。
这种就属于负面教材了,要不数据错了,总之有大病,分布可怕,虽然GP学出来IC和盈利都很强,但是分布来看,不敢用。
1.5 总结
上述只是一部分因子的检验逻辑,对于我来说,有点像以前主观交易学价值投资时看财报分析,哈哈。但是又不一样,财报真正的难点是滞后性强、真实性差,只代表过去不代表未来,难度过于高。但是作为因子来讲,我们每天都可以测试滚动IC,没有滞后性,如果发生风格漂移我们及时换啊,因子的逻辑相对简单,所以做量化做的就是因子,哈哈哈哈哈,明白了什么是好因子,下一步就是探索如果挖掘、生成这些因子,积累我们的因子库了。 当然还有因子衰退检验、因子的拥挤监控等等啦,后续再说吧。