[机器学习研究二]广义线性模型因子复现:滚动训练 GLM 合成因子的平台实证
摘要
本文针对一套基于华泰证券《人工智能选股之广义线性模型》(2017-06-22)因子合成框架的 A 股多因子选股策略,系统记录其从静态等权合成到沙箱内滚动训练 GLM 的迭代演进过程,并通过 PandaAI 因子分析平台的完整回测数据(2023-01-01 至 2025-12-31,10 日调仓,10 组分层,中证全指为基准)对两版策略进行全面定量对比。策略一(优化前)采用 RANK 等权合成近似"因子合成模型",以 12 个平台可映射因子静态加权,多头年化收益 19.13%,最大回撤 37.71%,夏普比率 0.650;策略二(优化后)在平台 Python 沙箱内引入逐月滚动训练的广义线性模型(Logistic 回归,前 30%/后 30% 截面分类标签),并严格执行标签 purge 防未来函数,多头年化收益 14.58%,最大回撤 28.78%,夏普比率 0.656,三年累计收益 41.66%。
数据表明,策略二在信息含量与风险结构两个维度体现出系统性优势:Rank_IC 由 0.0541 提升至 0.0625,IC_mean 由 0.0298 提升至 0.0352,IC p 值由 0.0738 改善至 0.0561;多头最大回撤由 37.71% 收窄至 28.78%,超额收益最大回撤由 10.76% 收窄至 8.67%,多空最大回撤由 19.10% 收窄至 14.47%。但策略二的日频重排预测使多头换手率由 42.28% 翻倍至 86.21%,年化成本 13.03% 完全吞掉 2.72% 的多头超额,净超额转负(-10.31%),显著差于策略一的 0.88%;多空端亦由 22.49% 降至 8.23%。核心结论有三:其一,滚动训练 GLM 的 IC 改善是真实但温和的,在 18 个候选的多重检验阈值(p < 0.0028)下未达统计显著;其二,原研报"分类器优于回归器"(IC_mean 口径 logistic 0.0352 > OLS 0.0307)与"正则化无提升"(Lasso 全面不优于 OLS)两条结论在 2023-2025 年平台数据上方向复现;其三,预测值的日频重排是 ML 合成因子在本平台 10 日调仓框架下的结构性成本,冻结块内预测是下一步迭代的第一杠杆。
一、引言
1.1 研究背景
华泰证券 2017 年金工报告《人工智能选股之广义线性模型》将多因子选股表述为一个监督学习问题:以 70 个因子暴露为特征、下一期收益为标签,用线性回归、岭回归、Lasso、弹性网络、逻辑回归与随机梯度下降等 7 种广义线性模型(GLM)逐月滚动训练,将模型预测值直接作为合成因子。该报告的两条标志性结论——"逻辑回归等分类器优于回归器""正则化对选股效果没有明显的提升作用"——均建立在 2007-2017 年月频调仓的全 A 回测之上。
本文的前作([机器学习研究一],2026-08-24)在 PandaAI 平台上复现了该报告的因子方向规律,但受限于当时"平台因子模式仅支持公式算子与静态合成"的认知,以 RANK 等权合成近似因子合成模型,滚动训练机制未能落地。
1.2 问题提出
本次迭代回答三个问题:第一,平台 Python 沙箱能否真正执行"逐月滚动训练 + 样本外预测"的 GLM 合成机制;第二,滚动机器学习合成相对静态等权合成,IC 与绩效改善几何;第三,原研报的两条标志性结论在 2023-2025 年、10 日调仓、平台实际股票池(沪深全 A,约 4900 只)口径下是否依然成立。
1.3 研究价值
本文的价值在于:机制突破——实证确认平台 Python 沙箱提供 sklearn/lightgbm 等完整机器学习库,且通过 factors['字段名'] 字面量声明即可加载字段目录全量数据(估值、市值、换手等),打通了"沙箱内滚动训练"这条此前认为不可行的路径;工程沉淀——给出含标签 purge、训练窗约束、抽样控制的防未来函数 GLM 因子模板;诚实归因——量化 ML 合成因子的换手结构劣化,明确净超额恶化的机制来源,而非只报告 IC 改善。
1.4 文章结构
本文第二章阐述研究目的;第三章介绍回测框架与评价体系;第四章剖析两版策略的代码逻辑与归因;第五章呈现对比结果与市场阶段分析;第六章总结局限与迭代方向。
二、研究目的
(一)核心目标
- 机制落地:在平台 Python 沙箱内实现与原研报同构的"特征预处理 → 滚动训练 → 样本外预测 → 合成因子"完整链路;
- 对照检验:以同一 12 因子池、同一回测口径,量化滚动 GLM 相对 RANK 等权合成的 IC 与绩效差异;
- 结论复现:检验原研报"分类器优于回归器""正则化无提升"两条结论的跨期稳定性;
- 成本归因:解释 ML 合成因子净超额变化的换手机制。
(二)具体任务
| 任务编号 | 具体任务 | 预期产出 |
|---|---|---|
| 1 | 探测沙箱库可用性与字段声明机制 | 特征池确认(12 因子全量可用) |
| 2 | 编写含 purge 的滚动训练 GLM 因子模板 | glm_composite_{logistic,linear,lasso}.py |
| 3 | 短窗口验证后全窗口运行三变体 | data/glm-ml-*.json |
| 4 | 与前作等权合成结果对比、成本折算 | 对比表与净值图 |
| 5 | 撰写机器学习系列复现研究报告 | 本报告 |
三、回测框架与核心代码逻辑
3.1 回测平台与数据基础
回测在 PandaAI 因子分析平台完成,股票池为平台实际加载的沪深全 A(约 4900 只),基准中证全指。数据层面本迭代有两项关键确认:其一,Python 沙箱可 import numpy、pandas、sklearn、xgboost、lightgbm、scipy、statsmodels 全套库;其二,平台按代码内 factors['字段名'] 字面量声明静态加载数据,据此 ratio_ep_ttm(EP)、book_to_market_ratio_ttm(BP)、sp_ratio_ttm(SP)、dividend_yield_ttm(DP)、market_cap(市值)、turnover(换手率)与 close 全部可用,12 因子池与前作完全对齐。平台自动附带回测起点前约 4 个月历史数据(warm-up 缓冲),构成首个预测块的初始训练集。防未来函数方面,因子在沙箱内训练、在回测窗口内预测,训练样本的标签窗严格落在预测块开始之前(purge),因此平台报告的 IC 与分组收益全部为样本外口径。
3.2 回测参数统一设置
| 参数项目 | 策略一(等权合成) | 策略二(滚动 Logistic) | 说明 |
|---|---|---|---|
| 回测平台 | PandaAI 因子分析 | PandaAI 因子分析 | 同一平台 |
| 回测区间 | 20230101-20251231 | 20230101-20251231 | 三年,服务端实测上限内 |
| 调仓周期 | 10 个交易日 | 10 个交易日 | 平台允许 1-10 |
| 分组数 | 10 | 10 | 方向端解析口径 |
| 因子方向 | 0(低值优) | 1(高值优) | 多头分别为分组1/分组10 |
| 合成机制 | RANK 等权静态合成 | 沙箱内逐月滚动训练 GLM | 核心机制差异 |
| 标签 | 无(直接合成) | 未来 10 日收益;分类为截面前后 30% | purge 至预测块起点 |
| 训练窗 | — | 最近约 12 个月,20% 行抽样 | 原研报最优 12-24 个月 |
| 特征预处理 | RANK 隐式截面秩 | 5×MAD 去极值→中位数填充→z-score | 原研报口径的可行子集 |
3.3 绩效评估指标体系
| 维度 | 指标 | 说明 |
|---|---|---|
| 因子质量 | Rank_IC、IC_mean、IC_p、单调性 | IC_p 为 IC_mean t 检验 p 值 |
| 收益类 | 多头/多空年化收益、累计收益、超额收益 | 多头=方向端 10% 等权组合 |
| 风险类 | 最大回撤、超额收益最大回撤 | 含多空组合口径 |
| 风险调整 | 夏普比率、信息比率 | 分层组合口径 |
| 交易质量 | 换手率、年化成本、净超额、月胜率 | 成本=换手×2×0.3%×252/10 |
3.4 稳健性检验设置
同池三模型对照(Logistic/OLS/Lasso)检验原研报两条结论;全部结果按研究累计 18 个候选计多重检验阈值(p < 0.0028);训练随机种子固定(块序号派生),重复运行可复现;换手成本按 0.3% 单边统一折算后重新排序。
四、研究过程:基于代码逻辑的深度推演与绩效归因
4.1 策略一核心逻辑与代码分析
python
策略一是公式模式的静态合成:12 个因子逐日做截面秩排名后等权相加,权重永不更新。其"合成"等价于对各因子取等权截面 z 排序,本质上是无学习参数的线性合成——因子权重由构造直接给定(各 1/12),不随数据变化。
策略一模式总结
机制透明、无过拟合通道、因子间互补性由等权强制保证;代价是无法表达因子间的条件依赖与时变权重,且多头端换手 42.28% 中有相当部分来自 12 个因子秩排名的日频抖动。
4.2 策略二核心逻辑与代码分析
python
策略二模式总结
与原研报同构的四步机制全部落地:特征和标签提取(12 因子 + 未来期收益)、特征预处理(MAD 去极值/填充/标准化)、训练集合成(12 个月滚动窗、分类标签前后 30%)、滚动训练(逐月重训、样本外预测)。与原研报的三点偏差为平台约束所致:训练窗起点受 warm-up 限制、无行业数据故以截面中位数填充替代行业均值填充、不做行业市值中性化与 PCA。
4.3 策略一潜在表现与归因分析
优势阶段
等权合成的权重固定,日频换手仅来自 12 个因子秩的抖动,多头换手 42.28% 为两版中更低;2024 年 9 月末的急涨行情中多头组合由净值 0.74 快速修复至 1.05 以上,弹性完整保留。
劣势与风险暴露
多头最大回撤 37.71% 深于策略二的 28.78%:等权结构中市值对数因子(前作实测净超额最高的单因子)权重被固定为 1/12,无法在风格切换时自适应收缩暴露。
归因总结
策略一的绩效核心是"低成本 + 高多头超额",风险短板是权重刚性导致的回撤容忍。
4.4 策略二潜在表现与归因分析
优势阶段
2025 年 5 月至 12 月,多头组合净值由 1.15 一路抬升至 1.42,是全区间最顺畅的上涨段:滚动训练在积累了 2 年以上样本后,模型对估值/反转/市值复合暴露的加权趋于稳定,Rank_IC 的逐期胜率(P(IC>0.02)=56.94%)在该段集中体现。
核心优势归因
IC 质量改善(Rank_IC +0.084、IC_mean +0.054 的绝对量提升)与回撤结构改善(多头回撤 -8.93 个百分点、超额回撤 -2.09 个百分点)共同源于模型权重对数据的学习:模型自动下调了 2023-2024 年失效的反转类暴露、上调估值与市值暴露,这是等权结构不可能实现的。
归因总结
策略二的绩效核心是"信息含量 + 回撤控制",成本短板是预测值日频重排带来的换手翻倍(86.21%):每次重训后模型系数漂移,全截面排名次日即发生大规模互换,年化成本 13.03% 反超多头超额 2.72%。
五、研究结果与核心结论
5.1 核心绩效指标量化对比
策略一(优化前)
策略二(优化后)
表1:核心绩效指标量化对比(回测实测数据)
| 指标 | 策略一(RANK 等权合成) | 策略二(滚动 Logistic GLM) |
|---|---|---|
| 回测区间 | 20230101-20251231 | 20230101-20251231 |
| 调仓周期 / 分组数 | 10 日 / 10 组 | 10 日 / 10 组 |
| Rank_IC(有效方向) | 0.0541 | 0.0625 |
| IC_mean | 0.0298 | 0.0352 |
| IC_p(多重检验阈值 p<0.0028) | 0.0738 | 0.0561 |
| 单调性 | 0.85 | 0.78 |
| 多头累计收益 | +54.67% | +41.66% |
| 多头年化收益 | 19.13% | 14.58% |
| 多头超额收益 | 7.27% | 2.72% |
| 多头换手率 | 42.28% | 86.21% |
| 年化换手成本 | 6.39% | 13.03% |
| 净超额收益 | 0.88% | -10.31% |
| 多头夏普比率 | 0.650 | 0.656 |
| 多头最大回撤 | 37.71% | 28.78% |
| 超额收益最大回撤 | 10.76% | 8.67% |
| 多头月胜率 | 61.11% | 58.33% |
| 多空年化收益 | 22.49% | 8.23% |
| 多空夏普比率 | 1.101 | 0.415 |
| 多空信息比率 | 1.239 | 0.596 |
| 多空最大回撤 | 19.10% | 14.47% |
| 多空月胜率 | 72.22% | 58.33% |
三模型同池对照(原研报两条结论的检验口径):
表2:GLM 三变体同池对照(20230101-20251231)
| 模型 | IC_mean | Rank_IC | IC_p | 单调性 | 多头超额% | 多头换手% | 多空年化% | 多空信息比率 |
|---|---|---|---|---|---|---|---|---|
| Logistic(分类器) | 0.0352 | 0.0625 | 0.0561 | 0.78 | 2.72 | 86.21 | 8.23 | 0.596 |
| OLS(回归器) | 0.0307 | 0.0672 | 0.0775 | 0.62 | 2.32 | 51.81 | 19.01 | 0.883 |
| Lasso(正则化) | 0.0289 | 0.0660 | 0.1001 | 0.55 | 1.91 | 51.11 | 19.14 | 0.870 |
5.2 净值曲线与资金行为深度解析
策略一净值曲线特征
多头(分组1)净值三年累计 +54.67%,曲线呈"两段式":2023 年至 2024 年 8 月宽幅震荡(多次回撤至 0.75-0.85 区间),2024 年 9 月末行情启动后进入单边抬升通道。多空组合(+64.25%)的斜率在 2024 年 9 月后显著变陡,主要贡献来自分组10(高值端)在小盘拥挤交易退潮期的持续亏损(年化 -15.21% 超额)。
策略二净值曲线特征
多头(分组10)净值累计 +41.66%,2023 年至 2024 年中的回撤明显浅于策略一(最低 0.85 对 0.74),2024 年 9 月后同样进入抬升通道,2025 年 5 月后加速。多空组合仅 +23.51%:其分组1(低值端,空头替代观察端)年化收益为正(+6.35%),空头端未能提供收益差,这是多空年化仅 8.23% 的直接原因。
5.3 关键差异点归因
| 差异维度 | 策略一 | 策略二 | 对绩效的影响 |
|---|---|---|---|
| 因子权重来源 | 构造固定(各 1/12) | 数据学习(逐月更新) | IC_mean +0.0054、多头回撤 -8.93pct |
| 预测值更新频率 | 随行情连续变化 | 重训日跳变 + 日频重排 | 换手 42.28%→86.21%,成本 +6.64pct |
| 空头端分离 | 分组10 年化 -3.35% | 分组1 年化 +6.35% | 多空年化 22.49%→8.23% |
| 信息利用 | 无标签参与 | 前后 30% 分类标签 | IC_p 0.0738→0.0561 |
5.4 市场阶段适应性分析
- 2023 震荡分化市:两版多头均无趋势性超额,策略二凭借市值/估值暴露的 learned 加权,回撤浅于策略一(0.85 对 0.74);Alpha 贡献主要来自风格暴露而非选股。
- 2024 年 2 月微盘流动性冲击:两版多头同步回撤,等权结构因小市值暴露更重而回撤更深,验证了学习权重对风格切换的自适应价值。
- 2024 年 9 月末政策反转市:两版同步 V 型修复,弹性均完整,GLM 学习权重未在急涨中缺席。
- 2025 结构性上行:策略二多头段(+41.66% 中的约 60% 来自 2025 年 5 月后)体现滚动训练在样本积累后的信息释放;同期策略一多头斜率放缓。
5.5 核心结论
- 结论一:滚动训练 GLM 的信息含量提升真实但温和——Rank_IC 0.0541→0.0625、IC_mean 0.0298→0.0352、IC_p 0.0738→0.0561,但在研究累计 18 候选的多重检验阈值(p < 0.0028)下未达显著,不能据此断言学习权重稳定优于等权。
- 结论二:预测换手是 ML 合成因子的结构性成本——日频重排使多头换手翻倍至 86.21%,13.03% 的年化成本将 2.72% 的多头超额吞至 -10.31%,净超额口径下策略一(0.88%)仍是更优的可执行方案。
- 结论三:原研报两条标志性结论方向复现——分类器在 IC_mean(0.0352 vs 0.0307)与多头超额(2.72% vs 2.32%)上优于回归器,Lasso 全面不优于 OLS;同时线性模型首次将空头端做负(分组1 年化 -4.82%),其多空年化 19.01% 显著高于 logistic 的 8.23%,提示"分类器优于回归器"的结论对评价口径(多头/多空)敏感。
六、未来优化与展望
6.1 策略一改造与重估
保留 RANK 等权合成的低成本骨架,补充两项:将 12 因子池中 2023-2025 年持续失效的反转类因子(1 月反转净超额 -9.29%)替换为波动率/换手交互项;以 6 个月滚动窗口对 12 个因子的等权权重做微调(权重限制在 0.5-1.5 倍区间),在不引入重训换手的前提下逼近学习权重的 IC 水平。
6.2 策略二精进与探索
第一杠杆是冻结块内预测、压降换手:
python
其次,训练窗由 12 个月扩至 24 个月(原研报最优区间上限)、HORIZON 由 10 日对齐月频 21 日、引入 LightGBM 作为非线性对照组检验"线性已足够"的边界;空头端可测试"仅多头分组10 输出、低值端置 0"的多头专用输出头,规避 logistic 空头分离失败的成本。
6.3 研究局限与后续方向
主要研究局限(标准四条):
- 实盘验证缺失:回测结果未经样本外实盘验证,86.21% 的多头换手在真实冲击成本下净超额将进一步恶化;
- 交易容量未评估:分组 10% 等权组合在 10 日调仓下的建仓成本与容量约束未建模;
- 参数鲁棒性未量化:RETRAIN_DAYS=21、TRAIN_DAYS=252、SUBSAMPLE=0.2、HORIZON=10 均为单点设定,未做系统性参数扫描;
- 统计功效不足:36 个月仅 72 个调仓期,IC_p=0.0561 距 18 候选的多重检验阈值(p<0.0028)尚有两个数量级差距,IC 改善不排除噪声。
后续研究方向(标准四条):
- 冻结块内预测的成本归因迭代(预期换手回到 40-50% 区间后重新评估净超额排序);
- LightGBM/线性模型的大池对照(12 因子 → 40+ 因子,检验原研报 70 因子池口径);
- 与其他策略组合构建(GLM 合成因子作为卫星、等权合成作为核心的核心-卫星架构);
- 实盘化工程建设(训练管道封装、模型系数漂移监控、换手预算约束下的自动降频)。
附录:本轮复现的工程资产
| 资产 | 说明 |
|---|---|
glm_composite_{logistic,linear,lasso}.py |
滚动训练 GLM 因子(含 purge/抽样/预处理全流程) |
glm_field_probe.py |
Python 沙箱字段声明机制探测脚本 |
data/glm-ml-{logistic,linear,lasso}.json |
平台全窗口回测原始返回 |
data/glm_ml_groups.csv |
三变体 10 组分组收益汇总 |
make_charts_ml.py |
净值曲线与 IC 对比图表生成脚本 |
outputs/charts/ml2_*.png |
本报告图 1-3 |
数据来源:PandaAI 因子分析平台回测实测(因子对象 glm-ml-logistic / glm-ml-linear / glm-ml-lasso,运行日期 2026-09-13);策略一数据引自前作报告《[机器学习研究一]广义线性模型因子复现》(2026-08-24,同一平台同一口径)。原研报方法参照华泰证券《人工智能选股之广义线性模型》(林晓明等,2017-06-22)。本文所有观点仅用于研究复现,不构成投资建议。


评论