第四章:因子分类体系

做多因子模型,第一件事是什么?

不是找数据,不是调参数。而是——搞清楚你手里的因子,到底属于哪一类。

我见过太多人,上来就堆几百个因子,结果回测漂亮,实盘一塌糊涂。为什么?因为因子之间互相打架,你根本不知道哪些是重复的,哪些是互补的。

今天我们就来聊聊因子分类这件事。说白了,就是给你的因子「上户口」。

4.1 为什么需要分类?

你想想看,一个厨房里,盐和糖长得差不多,但用法完全不同。因子也一样。

我个人习惯,拿到一个新因子,先问三个问题:

  • 它解释的是什么风险?
  • 它的数据来源是什么?
  • 它和经济逻辑怎么对应?

这三个问题,其实就是三种分类方式的起点。

核心观点:因子分类不是学术游戏,而是实战工具。分类对了,组合构建、风险归因、绩效分析才能落地。

4.2 基于经济意义的分类

这是最直观的分类方式。说白了,就是看因子背后有没有「人话」能讲通的经济逻辑。

4.2.1 风格因子

这类因子大家最熟悉。价值、动量、质量、规模、低波……

我在项目中遇到过一件事:有个团队把「市净率倒数」和「股息率」都归为价值因子,结果两个因子相关性高达0.85。嗯,这其实是在重复造轮子。

风格因子的特点是:

  • 有长期溢价(至少学术上这么说)
  • 在不同市场间可复制
  • 有明确的投资逻辑
风格因子 典型指标 经济逻辑
价值 BP、EP、CFP 市场过度反应,低估股票回归
动量 过去12个月收益(剔除最近1个月) 趋势延续,信息缓慢扩散
质量 ROE、毛利率、杠杆率 好公司有护城河
低波 过去60个月波动率 彩票效应,高波动被高估

我的经验:风格因子之间不是独立的。比如低波和动量经常负相关。做组合时,一定要算一下因子间的相关系数矩阵。

4.2.2 宏观因子

这类因子和宏观经济挂钩。利率、通胀、GDP增速、信用利差……

我曾经犯过一个错:直接用CPI同比作为通胀因子,结果发现它对股票收益的解释力几乎为零。后来才意识到,市场定价的是「预期外的通胀变化」,不是通胀本身。

宏观因子的难点在于:

  • 数据频率低(季度甚至年度)
  • 滞后性强
  • 需要做预期差处理

4.2.3 另类因子

这是近几年最火的方向。卫星图像、社交媒体情绪、供应链数据、专利文本……

说白了,就是「别人还没用上的数据」。我有个朋友用招聘网站的数据预测公司业绩,效果居然比分析师一致预期还好。

但要注意:另类因子的信噪比极低。你想想看,1000条推文里可能只有1条是有用的信号。

避坑指南:我曾经用新闻情绪做因子,回测年化超额15%。结果实盘时发现,新闻数据有1天的延迟,等信号出来,价格已经反应完了。嗯,从那以后我再也不信「实时情绪」了。

4.3 基于统计的分类

经济意义分类很直观,但有个问题:它依赖人的主观判断。两个研究员可能把同一个因子归到不同类别。

统计分类就不一样了。它让数据说话。

4.3.1 主成分分析(PCA)

PCA的核心思想:把一堆相关因子,压缩成几个不相关的「主成分」。

我习惯用PCA做两件事:

  1. 降维:从100个因子降到10个主成分
  2. 去噪:扔掉解释方差最小的那些成分
# 一个简单的PCA示例
import numpy as np
from sklearn.decomposition import PCA

# 假设我们有100个因子,500个时间点
X = np.random.randn(500, 100)

# 保留95%方差
pca = PCA(0.95)
X_pca = pca.fit_transform(X)

print(f"原始维度: {X.shape[1]}")
print(f"压缩后维度: {X_pca.shape[1]}")
print(f"解释方差比: {pca.explained_variance_ratio_.sum():.2%}")

注意:PCA出来的主成分没有经济含义。你没法说「主成分1是价值因子」。它只是一个数学构造。

4.3.2 因子聚类

另一种思路:用聚类算法把因子分组。比如K-means、层次聚类。

我做过一个实验:把A股常见的200个因子做层次聚类,结果发现——

  • 第一大类:估值相关(PB、PE、PS……)
  • 第二大类:动量相关(各种窗口期的收益)
  • 第三大类:波动相关(各种波动率指标)

有意思的是,有些「另类因子」被分到了传统类别里。这说明它们本质上并不「另类」。

4.4 两种分类方式的对比

维度 经济意义分类 统计分类
可解释性 高(有逻辑支撑) 低(黑箱)
客观性 低(依赖主观判断) 高(数据驱动)
稳定性 高(逻辑不变) 低(样本变化,结果变化)
实战价值 适合风险归因 适合因子筛选

我个人建议:两种方法结合着用。先用经济意义分类做初筛,再用统计方法做验证。

4.5 一张图看懂因子分类体系

因子分类体系 基于经济意义 基于统计 风格因子 宏观因子 另类因子 主成分分析 因子聚类 价值、动量 质量、低波 规模 利率、通胀 GDP、信用利差 汇率 卫星图像 社交媒体情绪 供应链数据 降维 去噪 正交化 K-means 层次聚类 DBSCAN 实战建议:经济意义分类做初筛 + 统计分类做验证 两种方法互补,不要只依赖一种

4.6 实战中的分类策略

说了这么多理论,到底怎么用?

我分享一个自己常用的流程:

  1. 第一步:经济意义打标签——每个因子手动标注「风格/宏观/另类」
  2. 第二步:统计验证——用PCA看这些标签是否合理,有没有跨类别的因子
  3. 第三步:相关性检查——同类因子间相关性 > 0.7 的,只保留一个
  4. 第四步:稳定性测试——滚动窗口做聚类,看分类结果是否随时间变化

一个小技巧:我习惯把因子分类结果存成一个配置文件。每次新增因子,先跑一遍分类流程,再决定是否加入模型。这样能避免「因子动物园」的问题。

嗯,因子分类这件事,说难不难,说简单也不简单。关键是找到适合你策略的方法。别盲目追求「全」,也别偷懒「随便分」。

记住:分类是为了用,不是为了分。


公众号:蓝海资料掘金营,微信deep3321