因子分类体系:宏观因子、风格因子、行业因子、统计因子、基本面因子

做量化这些年,我见过不少人一上来就堆因子。几百个因子往里塞,回测曲线漂亮得不行。结果实盘一跑,直接崩了。

为什么会这样?说白了,就是没搞清楚因子的分类体系。你想想看,连因子是什么类型都没弄明白,你怎么敢用它来预测收益?

今天我就把这五类因子掰开揉碎了讲清楚。这五类分别是:宏观因子、风格因子、行业因子、统计因子、基本面因子。嗯,咱们一个一个来。

核心观点:因子分类不是学术游戏。它直接决定了你的组合构建逻辑、风险归因方式、以及最终的实盘表现。

因子分类体系 宏观因子 风格因子 行业因子 统计因子 基本面因子 利率、通胀、GDP 汇率、信用利差 系统性风险来源 价值、动量、质量 规模、波动率、成长 横截面收益差异 申万一级行业 GICS行业分类 行业轮动策略 PCA、ICA、FA 纯数据驱动 可解释性较差 PE、PB、ROE 营收增长、毛利率 公司财务特征 不同因子服务于不同的投资场景

1. 宏观因子:市场的底层驱动力

宏观因子,说白了就是那些能影响所有资产价格的大变量。利率、通胀、GDP增速、汇率、信用利差——这些东西一动,整个市场都得跟着抖三抖。

我个人习惯把宏观因子分成两类:增长类价格类。增长类看经济周期,价格类看通胀和利率。这两类因子组合起来,基本能解释大部分资产的长期走势。

实战经验:我在做多资产配置时,第一件事就是看宏观因子的状态。比如2022年,通胀因子飙升,利率因子跟着往上走。这时候你如果还重仓成长股,那基本就是送人头。我当时把组合里的久期砍了一半,换成了商品和通胀挂钩债券,才勉强保住了收益。

宏观因子的核心应用场景有两个:

  • 资产配置:判断大类资产的长期方向
  • 风险对冲:用宏观因子暴露来对冲系统性风险

但要注意,宏观因子的预测能力其实很弱。你想想看,如果能准确预测下个月的CPI,你早就是亿万富翁了。所以宏观因子更适合做风险归因,而不是做择时。

2. 风格因子:横截面的秘密武器

风格因子,这是咱们量化圈最熟悉的领域。价值、动量、质量、规模、低波、成长——这些因子解释了个股之间的收益差异。

我记得刚入行那会儿,觉得风格因子就是万能的。后来发现,风格因子也有失效的时候。比如2020年,价值因子跌成狗,动量因子也频繁反转。那段时间我回撤了15%,心里慌得一批。

风格因子的核心特征:

  • 横截面属性:在同一时间点,不同股票在风格因子上的暴露不同
  • 时序稳定性:风格因子的收益在长期是稳定的,但短期会剧烈波动
  • 可投资性:可以通过构建多空组合来获取风格因子收益

重要提醒:风格因子之间不是独立的。价值和动量经常负相关,质量和低波高度相关。做组合时一定要考虑因子之间的相关性,否则你会以为自己做了分散化,实际上全押在同一个风险源上。

我个人建议,风格因子的数量控制在5-8个就够了。太多了反而容易过拟合。我见过有人搞了50个风格因子,回测曲线漂亮得不像话,实盘直接崩了。为什么?因为很多因子其实就是同一个东西的不同变种。

3. 行业因子:躲不开的板块效应

行业因子,这个好理解。同一个行业的股票,走势往往高度相关。你想想看,新能源板块涨的时候,宁德时代和比亚迪能差到哪去?

行业因子的处理方式有两种:

  • 哑变量法:每个行业设一个0/1变量,属于该行业就取1,否则取0
  • 行业指数法:直接用行业指数的收益率作为因子

我个人更倾向于哑变量法。为什么?因为行业指数本身也包含了风格因子的影响。比如消费行业指数,里面既有行业因素,也有质量因子、成长因子的影响。用哑变量法可以更干净地剥离出纯粹的行业效应。

避坑指南:我曾经在构建多因子模型时,把行业因子和风格因子一起放进去做回归。结果发现行业因子的系数全都不显著。后来才意识到,风格因子已经吸收了行业因子的解释力。正确的做法是:先对收益率做行业中性化处理,再跑风格因子模型。

行业因子的应用场景:

  • 行业轮动:根据行业因子的动量或估值来做轮动
  • 风险控制:控制组合在单个行业上的暴露,避免过度集中

4. 统计因子:数据说了算

统计因子,这是最"数学"的一类因子。主成分分析(PCA)、独立成分分析(ICA)、因子分析(FA)——这些方法不依赖任何经济理论,纯粹从数据中提取共同因子。

统计因子的优点很明显:解释力强。你拿1000只股票的收益率矩阵做PCA,前几个主成分就能解释60%-70%的方差。缺点也很明显:可解释性差。你很难说清楚第三个主成分到底代表什么。

我个人的经验是,统计因子更适合做降维噪声过滤,而不是做投资决策。比如,你可以用PCA提取前10个主成分,然后用这些主成分来估计协方差矩阵,这样能有效避免协方差矩阵的估计误差。

小技巧:用统计因子做协方差矩阵估计时,记得做一下"去噪"处理。把特征值小于某个阈值的成分直接扔掉,只保留信号部分。我在实盘中用这个方法,组合的波动率降低了大概15%。

统计因子的代码实现其实很简单:

import numpy as np
from sklearn.decomposition import PCA

# 假设 returns 是 N只股票 x T个时间点的收益率矩阵
pca = PCA(n_components=10)
factors = pca.fit_transform(returns.T)  # 提取前10个统计因子
loadings = pca.components_  # 因子载荷矩阵

# 解释方差比例
explained_ratio = pca.explained_variance_ratio_
print(f"前10个因子解释了 {explained_ratio.sum():.2%} 的方差")

5. 基本面因子:回归公司本质

基本面因子,这是最"传统"的一类因子。PE、PB、ROE、营收增长率、毛利率、资产负债率——这些指标直接来自公司的财务报表。

基本面因子和风格因子有重叠,但侧重点不同。风格因子更关注市场定价,比如价值因子看的是PB和PE的百分位。基本面因子更关注公司质量,比如ROE的高低、毛利率的稳定性。

基本面因子的核心优势:

  • 逻辑清晰:好公司就应该有好价格,这个逻辑谁都懂
  • 数据可靠:财务报表是经过审计的,造假成本高
  • 长期有效:基本面因子在长期维度上表现稳定

但基本面因子也有硬伤:频率低。季报一年才四次,年报一年一次。你拿着季度数据去做日频交易,那基本是刻舟求剑。

我的建议:基本面因子适合做低频选股,比如月度调仓。如果你做高频交易,基本面因子基本没用。我自己的组合里,基本面因子占30%的权重,风格因子占50%,剩下的20%给行业因子和宏观因子。

各类因子的对比总结

因子类型 数据来源 更新频率 解释能力 可解释性 主要用途
宏观因子 宏观经济数据 月度/季度 高(系统性) 资产配置、风险对冲
风格因子 市场交易数据 日度 中(横截面) 选股、组合构建
行业因子 行业分类 日度 中(板块效应) 行业轮动、风险控制
统计因子 收益率数据 日度 高(降维) 协方差估计、噪声过滤
基本面因子 财务报表 季度 低(长期) 低频选股、价值投资

嗯,这五类因子各有各的脾气。宏观因子管大局,风格因子管选股,行业因子管板块,统计因子管降维,基本面因子管质量。你不可能只用一类因子就把所有问题都解决。

我个人习惯的做法是:宏观因子定方向,风格因子选个股,行业因子控风险,统计因子做优化,基本面因子做验证。五类因子配合使用,才能构建出真正稳健的组合。