halo 的技术博客

返回

引言:因子挖掘的范式迁移#

量化因子挖掘(Factor Mining)已经走过了三个阶段:1990 年代法玛-佛伦奇三因子模型的确立标志着学术因子时代;2000 年代机构投资者批量复现学术因子构成了工业应用时代;而 2020 年代,随着机器学习在金融领域的深度渗透,我们正在进入数据驱动的自动化因子挖掘时代。

这条演进路径从本质上讲,是人类对”什么驱动了股票收益”这个问题的认知在不断深化。本文试图从方法论的视角,梳理从线性回归到 GBDT、再到深度学习和图神经网络在因子挖掘中的应用,帮助读者建立完整的因子工程知识框架。

一、传统因子挖掘:假设驱动的艺术#

1.1 线性因子模型的起源#

Fama-French 三因子模型(1993)的贡献不只是三个因子(市场、规模、价值),更重要的是建立了因子研究的方法论框架:先假设、后检验。研究员基于金融学理论提出假设,然后用回归模型验证假设是否成立。

import statsmodels.api as sm

# 经典的 Fama-MacBeth 两步回归法
# 第一步:时间序列回归,获取因子载荷
# 第二步:横截面回归,估计因子风险溢价

# Step 1: 每只股票对因子做时间序列回归
X_factors = sm.add_constant(factors)  # 市场、SMB、HML
beta_i = sm.OLS(stock_returns, X_factors).fit().params

# Step 2: 横截面回归
Y_cross = portfolio_returns  # T期N个组合的收益
X_cross = sm.add_constant(beta_matrix)
risk_premium = sm.OLS(Y_cross, X_cross).fit()
python

这个框架强大但局限:它只能检验人类能想到的假设,而金融市场的复杂程度远超人类的假设空间。一个研究员每年最多能测试几十个新因子,而市场可能包含数千个有效的非线性定价信号。

1.2 学术因子的工业化困境#

学术界至今已发布超过 400 个股票因子(参见 Cochrane 的”因子动物园”研究),但工业实践中能稳定使用的不到 20 个。原因有三:

  • 学术因子严重过拟合:研究者翻阅大量数据后才”发现”的因子,不可避免地带有数据窥探偏误(Data Snooping Bias)。McLean & Pontiff (2016) 发现学术因子在论文发表后平均衰减 30%。

  • 线性假设的脆弱性:单因子排序分组法的隐含假设是因子与收益线性单调相关。但现实中,波动率因子可能呈 U 型关系——极低波动和极高波动的股票都表现不佳,中等波动的反而最优。

  • 因子拥挤效应:当一个因子被广泛使用,其超额收益会因资金涌入而被套利抹平。过去五年,传统价值因子(HML)在日本市场的 Sharpe 比率从 0.8 降至不足 0.2。

K线图与因子分析,传统线性模型已无法捕捉复杂市场模式

二、梯度提升树:非线性因子的工业级突破#

2.1 为什么是 GBDT?#

2017 年起,XGBoost/LightGBM/CatBoost 三大梯度提升树框架逐渐成为量化因子挖掘的主力工具。相比深度学习,GBDT 在结构化表格数据上的表现更稳定,不需要大量数据预处理,超参数调优也更容易。

在因子挖掘中,GBDT 用于两件事:特征重要性排序(发现候选因子)和收益预测(验证候选因子)。

2.2 特征交叉与因子发现#

GBDT 的一个重要特性是自动进行特征交叉。假设模型在树结构中使用”市盈率 PE < 15 AND 动量分数 > 0.5”这个分裂路径,这意味着这两者的交互对收益预测有价值,研究员可以据此设计一个新的复合因子。

利用 SHAP(Shapley Additive Explanations)值分析,可以直观地看到每个特征对预测结果的影响方向和幅度:

SHAP 依赖图的妙处在于,它能揭示 Dependence Plot 中看不见的非线性模式。例如,“散户关注度”因子可能在低区间与收益正相关,但超过某个阈值后反而变负——这种”盛极而衰”的规律在传统线性回归中完全不可见。

2.3 过拟合防范:因子挖掘中的关键一环#

非线性模型的自由度极高,过拟合风险也等比放大。量化因子挖掘中最需要警惕的,不是因子不 work,而是在训练集上完美、实盘上失效

核心防御手段有四条:

其一,严格的时间序列交叉验证。不做随机 K 折交叉验证——那会引入前视偏差(Look-ahead Bias)。必须用 Walk-forward 或 Purged K-fold 方法,保证训练集的时间戳严格早于验证集。

其二,样本外隔离。测试集中保留至少两段独立市场环境的数据:一段牛市(如 2020-2021)、一段熊市(如 2022 年)、一段震荡市(如 2023 年)。因子必须在三种市场环境中有稳定表现,才能进入实盘候选。

其三,多目标评估。不能只看 IC 均值,必须同时评估 IC 标准差和 ICIR(Information Coefficient’s IR)。一个 IC=0.03 但标准差=0.08 的因子远不如 IC=0.02 但标准差=0.02 的因子——前者波动太大,回撤控制困难。

其四,因子拥挤度监控。定期计算因子的自相关衰减速度和截面离散度,如果自相关性忽然大幅提升,说明越来越多的资金在跟踪相同的因子,alpha 衰减可能正在发生。

量化交易环境,从传统因子到 AI 模型的演进

三、深度学习的角色:潜力巨大但挑战并存#

3.1 时序模型的天然优势#

金融数据本质上是时间序列,而 LSTM 和 Transformer 天然擅长建模时序依赖。2018 年前的 LSTM 尝试大多效果不好——不是因为模型不行,而是金融数据的信噪比太低,小模型学到的往往是噪音而非信号。

最近的进展来自两个方向的改进:一是用 Transformer 对横截面的注意力建模——2022 年发表的 AlphaNet 系列论文首次将 Transformer Encoder 用于因子组合优化,IC 指标优于传统线性多因子模型约 15%;二是在时间维度上融合宏观变量和截面因子,构建多元时序预测模型。

3.2 图神经网络与关联网络#

传统因子分析假设股票之间独立——这显然不成立。同一行业、同一供应链、同一实控人的股票之间存在复杂的关联关系。

图神经网络(GNN)让因子挖掘进入了关系感知时代。将每只股票视为图中的节点,股票之间的行业关联、供应链关系、分析师覆盖关系视为边。GNN 的消息传递机制(Message Passing)使得每只股票的预测不再基于孤立特征,而是融入其关联节点的信息。

一个典型的 GNN 因子挖掘框架:

  1. 节点特征:每只股票的传统因子(估值、动量、质量等)
  2. 边特征:行业共现、供应商-客户关系、分析师同组覆盖、公募基金共同持股
  3. 图卷积层:对邻接节点的特征加权聚合,多次迭代后每只股票的嵌入向量融合了多跳关联信息
  4. 预测层:基于嵌入向量预测未来收益

2023-2024 年间,多家量化私募(包括 Two Sigma、Point72 旗下基金)在内部技术分享中提及 GNN 被用于因子组合和风险控制。目前 GNN 因子的主要挑战是更新频率——图结构每月甚至每季度才更新,当市场出现结构性变化时(如政策突变),GNN 因子反应滞后的问题突出。

3.3 元学习与因子泛化#

2024 年后兴起的 MAML(Model-Agnostic Meta-Learning)框架为因子挖掘提供了新的可能性。传统因子训练是”给定一批股票,学习预测收益”,而元学习的目标是”学习如何在不同股票池和不同市场环境下快速学习预测收益”。

这意味着:一个在 A 股训练的因子挖掘模型,通过元学习可以在 A 股→港股→美股的迁移中,只需少量样本就能快速适应。目前这个方向仍处于早期探索阶段,但从技术路径上看,它代表了因子挖掘从”特定市场”走向”通用智能”的关键一步。

机器学习模型在金融领域的应用

四、给量化新手的实操建议#

如果你正在开始学习量化因子挖掘,我的建议是从以下路径入手:

第一阶段(1-3 个月):掌握经典线性因子。先从 WorldQuant 101 Formulaic Alphas 开始,每一条都动手回测,理解每个因子的金融逻辑和代码表达。这个阶段的目标是建立”因子直觉”——看到一条因子公式就能在脑中有个大概的 IC 和 Sharpe 范围。

第二阶段(4-6 个月):学习 GBDT 框架。用 LightGBM 做特征重要性分析,理解 SHAP 值的机制。尝试用 GBDT 发现 2-3 个新的复合因子,并在样本外验证其稳定性。这个阶段的难点是建立严格的回测纪律——你的前 10 个”发现”大概率全部是过拟合产物,这是必经之路。

第三阶段(7-12 个月):涉足时序模型和 GNN。用 PyTorch Geometric 实现一个简单的股票关联图 GNN,观察图特征是否带来预测增益。这个阶段的目标不是做出可以上实盘的模型,而是建立对新技术路径的技术判断力——知道什么场景下传统方法够用、什么场景下值得引入深度学习。

因子挖掘最容易被忽视的,不是技术,而是数据质量。Garbage in, garbage out 在量化领域是铁律。花 70% 的时间清洗数据(生存偏差、复权错误、停牌处理、极端值处理),30% 的时间建模,这个比例对新手尤其重要。


本文不构成任何投资建议。因子挖掘涉及历史回测,过去的表现不代表未来收益。

量化因子挖掘:从线性回归到深度学习的演进之路
https://blog.halo26812.eu.org/blog/from-linear-to-nonlinear-factors
Author halo
Published at 2026年7月29日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨