【国君金工】决胜样本外 因子挖掘算法革新
创建于 更新于
摘要
本报告针对量化投资中ALPHA因子自动挖掘中的过拟合、因子相关性高和非线性问题,提出了低初始化种群(population)高进化代数(generation)的遗传规划算法新设计理念。通过Size-Fair交叉算法有效控制因子复杂度膨胀风险,结合多目标适应度函数显著提升样本外表现及因子多样性。实证中,因子样本外存活率高,沪深300统计套利因子生命周期平均超过两个月,结合相关性约束优化,生成因子相关性控制在20%以内,整体算法在算力和表现上均优于传统方法,推动ALPHA因子挖掘迈向更稳定与高效的阶段 [page::0][page::1][page::3][page::5][page::7][page::9][page::11].
速读内容
- 遗传规划传统问题与算法革新 [page::1][page::2]:

- 传统遗传规划多采用高population低generation,存在过拟合、因子相关性高及因子生命周期短等难题。
- 本报告提出“低population+高generation”组合,提升算力利用率,增强样本外泛化能力,有效降低因子间相关性。
- 膨胀问题及Size-Fair控制方案 [page::3][page::4][page::5]:



- 膨胀表现为因子表达式不必要的复杂,导致过拟合风险加剧。
- Size-Fair交叉算法通过对子树结点数限制,根源性抑制膨胀,保证模型结构稳定。
- 该方案降低因子平均深度(2.46 vs 6.24),且算法运行速度提升4倍。
- 适应度函数设计与因子表现改善 [page::7][page::8][page::9]:


- 传统IC/IR适应度容易导致因子非线性问题及样本内严重过拟合。
- 采用多目标适应度函数,结合最大化多空收益和最小化最大回撤,提升因子样本内显著性,降低过拟合风险。
- 在适应度中加入负相关约束,有效控制生成因子相关性≤20%。
- 样本外验证与因子生命周期分析 [page::10][page::11][page::12]:




- 上证50和沪深300衍生的因子样本外表现稳健,IC达0.063,T统计量2.52。
- 10个沪深300因子首月存活率达70%,大部分因子生命周期超过两个月。
- 因子收益存在边际递减,前五因子收益显著优于后五因子。
- 参数配置与执行效率 [page::9]:
| 参数 | 设定范围 |
|-------------|----------------|
| 初始化种群 | 20-50 |
| 迭代次数 | 30-40 |
| 树最大深度 | 8 |
| 惩罚系数 | 1.1 |
| 变量个数 | 11 |
| 算子个数 | 40 |
| 样本回溯天数 | 400个交易日 |
- 结合低population高generation的算法设计,单次沪深300实验耗时控制在1000秒至8000秒之间,效率突出。
- 结论与展望 [page::12]:
- 算法在提高样本外表现和控制因子复杂度方面表现出色,为统计套利因子挖掘提供新思路。
- 未来可通过增加算子、引入基本面数据等进一步提升模型表现。
深度阅读
【国君金工】决胜样本外 因子挖掘算法革新 ——深度解析报告
---
一、元数据与概览
- 报告标题: 【国君金工】决胜样本外 因子挖掘算法革新
- 作者: 陈奥林、杨能
- 发布机构: 国泰君安证券研究
- 发布时间: 2020年11月3日
- 主题: 围绕量化投资中的遗传规划算法在统计套利因子挖掘问题上的优化创新,尤其是算法设计理念及适应度函数改进,目的是提升因子样本外表现与生命周期。
核心论点:
报告认为遗传规划(Genetic Programming, GP)作为模拟生物进化的统计套利因子生成方法,传统做法(高初始化种群低进化代数)在算力消耗和因子样本外表现上存在不足。报告提出低种群(Population)高代数(Generation)的算法理念,结合Size-Fair交叉算法和多目标适应度函数,大幅提升了因子样本外表现和多样化,降低了过拟合风险及高相关性问题,取得了上证50及沪深300中优异的样本外表现及因子生命周期表现。[page::0,1,2]
---
二、逐章深度解读
1. 前言与现状问题
- 当前人工智能渐成量化主流,自动因子挖掘成为关注焦点,遗传规划是其中主流工具。难点主要
- 因子过拟合(样本外存活率低)
- 生成因子高度线性相关
- 因子非线性问题
- 因子生命周期不确定
- 遗传规划基本流程(初代公式——多代迭代淘汰)如图1所示,通过优胜劣汰筛选出高适应度的统计套利因子,下图示意了各环节的操作方法。[page::1,2]
2. 低Population + 高Generation算法设计理念
- 传统算法习惯高population低generation,报告认为低种群高代数更合理:
- 不增加总计算负担
- 提升因子质量(更多代数允许局部深度优化)
- 降低因子间相关性(减少初代重复,高population重复因子较多)
- 算法运行时间更短
- 但带来“膨胀”问题:因子公式长度不必要膨胀,复杂且易过拟合
- 解决膨胀,报告重点介绍了Size-Fair交叉算法,该方法对遗传算子进行限制控制公式长度增长,效果优于传统限制方法(如结点数限制、Tarpeian技法、静态惩罚项)。[page::2,3]
3. 膨胀问题实证分析及解决方案
- 实验(图3)数据显示代数≥16时代数后期,平均适应度无明显提升,但树的size持续膨胀,从平均size 4增长至15,在没有优化的情况下,算法因膨胀风险显著增加过拟合风险。[page::3]
- 推荐使用Size-Fair交叉算法(详细实现步骤见图4、5),核心在于两棵父代树交叉时确保交叉子树的结点数匹配,避免子代公式失控增长。该方法控制膨胀效果好且提高了算法搜索效率,实验证明因子深度由6.24降至2.46,且计算耗时缩短4倍(2318秒缩减为510秒)。[page::4,5,6]
4. 适应度函数设计—缓解非线性与过拟合
- 以IC/IR作为适应度容易导致非线性问题,即因子分层收益不线性,如GP001、GP002多个因子存在低分层与收益不匹配的情况(图6、7)。
- 采用多目标适应度函数包括:
- 最大化多空日收益(Avg{LongshortPnL})
- 最小化最大回撤(Maxdrawdown)
- 通过模拟不同持仓日起点(ti),在不增加样本量前提下,提升统计显著性,减少过拟合风险。
- 以GP003(图8)为例,在沪深300进行挖掘,IC达到0.06左右,T统计量3.77,因子分层表现更佳,非线性得以缓解。[page::7,8]
5. 控制因子相关性
- 低population + highgeneration 自然降低相关性,但对于因子算子和输入特征有限的情况,算法易陷入收敛至相似因子。
- 采用相关性惩罚项:在适应度函数中加入负相关性指标,优先生成与现有因子负相关的因子,保持生成因子间平均相关度小于20%(图9)。
- 相关性约束也扩展到对风格因子风险的中性化,避免新因子与风格因子高度相关产生风险敞口。[page::8,9]
---
三、图表深度解读
图1 遗传规划示意流程图(第2页)
- 展示了随机生成初代公式、计算适应度、父代选择与交叉,生成子代,再进入下一代迭代的遗传算法过程。
图3 膨胀现象实测(第3页)
- 红色框中适应度avg从负数提升至正值后趋于平稳,蓝色框中size持续上升,清晰显示没提升适应度但增长复杂度的膨胀。
- 说明传统遗传规划在高循环数时因膨胀带来过拟合风险。
图4 Size-Fair交叉核心流程(第4页)
- 图示两棵父代树,通过限制交叉子树结点数匹配,避免子代树体积异常增大,关键在于结合结点数筛选备选子树。
图5 子树结点数示例(第5页)
- 以简单树结构展示不同子树的结点数计算,为Size-Fair交叉提供操作依据。
表1 Size-Fair与传统算法对比(第6页)
- Size-Fair减少树深度,控制因子复杂度,提升搜索效率。耗时降低(4倍),控制膨胀非常有效。
图6、7 GP001与GP002因子多空收益与分层累积收益(第6、7页)
- GP001多空收益平稳上升,但分层收益非严格单调,反映非线性问题。
- GP002同样表现分层收益非线性,提示传统IC/IR适应度局限。
表2 GP003因子表现(第8页)
- IC和RankIC均约0.06,T统计量3.77,表现优于上述两因子。
图8 GP003因子分层累积收益(第8页)
- 因子收益分层表现较均匀,非线性得以改善。
图9 2020年2月生成10因子相关性柱状图(第9页)
- 所有因子相关性均低于20%,最高约15%,说明多目标适应度函数有效控制相关性。
表3、图10 上证50生成因子样例及样本外平均表现(第10、11页)
- 多个因子最大回撤小于5%,日收益率大于0.02%,相关性低且在样本外展现持续正收益,IC=0.063,T=2.52,样本外检验表现良好。
- 因子月滚动更新保证模型稳定与新鲜感。
表5、图11、12 沪深300 2020年4月生成10因子样本内外表现(第11、12页)
- 10因子分层收益样本内显著,样本外因子存活表现为70%首月存活率,随后2-3个月有部分因子失效,寿命平均两个月以上。
- 图中红线为2020年4月,之前为样本内,之后为样本外,多数因子表现稳定,部分因子失效,符合预期现实因子衰减规律。
---
四、估值分析
本报告并非公司或行业估值报告,核心在因子挖掘算法设计,无典型DCF或P/E类估值模型,侧重算法效率、因子存活率及样本外表现指标。
---
五、风险因素评估
- 算法膨胀风险:因子复杂度无限制增长导致过拟合,降低实际有效性。
- 控制方案是Size-Fair交叉、结点数/深度限制及适应度惩罚。
- 过拟合风险:因训练样本不足导致因子效果夸大,样本外表现不佳。
- 通过多目标适应度函数、日频多空收益模拟和最大回撤最小化提升泛化能力。
- 相关性风险:新因子可能高度相关,导致组合多样性不足。
- 通过相关性惩罚约束和多目标适应度设计降低该风险。
- 算法稳定性风险:低population可能导致偶发性无法找到符合标准因子。
- 多次运行降低该风险。
- 样本外有效性风险:因子样本外失效时间有限。
- 报告通过回测验证,样本外因子平均生命周期约两个月,视为合理。
报告未明示缓解策略具体发生概率,但对每项风险均提出了对应的算法设计改进作为缓解措施。[page::3,7,8,9,11]
---
六、批判性视角与细微差别
- 偏见与假设:
- 报告假设低population高generation组合优于传统高population低generation,主要通过算法运行效率和样本外表现对比论证,缺乏更大范围样本和更长回测期完全证明。
- 因子生命周期评估集中于半年内,长期稳定性尚待验证。
- 数据局限与统计风险:
- 数据使用集中于上证50和沪深300,特殊行业或市场结构可能影响泛化。
- 多目标适应度函数对算子及特征选择敏感,算子扩展及基本面特征增加是未来改进方向。
- 图表及数据呈现存在一定混乱:
- 部分表格编码在文字段中,解析不够直观。
- 多数示范因子表达式较长,实际解读难度较大。
总体而言,报告较为全面理性地阐述了算法创新与风险,提醒量化投资者审慎采纳和进一步验证。
---
七、结论性综合
本报告系统介绍了基于遗传规划的统计套利因子自动生成算法的创新性改进,重点是:
- 算法设计理念创新:提出“低population + 高generation”组合,有效提升了生成因子质量和样本外表现,降低相关性及算力消耗,同时解决了传统算法容易出现的膨胀和过拟合风险。
- 膨胀控制突破:通过Size-Fair交叉算法从根源限制遗传算子导致的因子公式复杂度膨胀,显著提升搜索效率并控制因子复杂度。
- 多目标适应度函数设计:引入日度多空收益最大化与最大回撤最小化指标作为优化目标,提升了统计显著性,缓解非线性和过拟合问题。适应度中还加约束限制相关性,有效控制了因子之间及与风险因子之间的高度相关性。
- 实证验证:通过上证50与沪深300回测展示,样本外IC及T统计量均显著(e.g., 上证50样本外IC约6%,T值2.52),因子样本外平均存活周期超过2个月,多因子滚动更新策略进一步保障了组合的稳定性和持续收益。实测因子深度均衡,回测耗时大幅缩减。
- 算法实际应用价值:挖掘出了大量符合标准的量价统计套利因子,且样本外表现稳定,充分说明通过遗传规划算法的结构调整和策略优化,在因子自动生成领域提供了新的思路和工具,为量化投资实践提供了技术支持。
总体上,报告提出的算法改进方法论和实证结果为因子研究提供了具有创新性的技术方案,提升了量化因子库的多样性和质量。未来可在算子扩展、基本面因子整合以及更长周期样本外测试等方面拓展验证,进一步增强因子生成引擎的稳健性和广泛适用性。
---
八、报告中的图表摘要与链接
| 图表编号 | 描述 | 链接 |
|---|---|---|
| 图1 | 遗传规划基本流程图,演示算法初始化、选择、交叉繁殖及迭代过程。 |

| 图3 | 膨胀现象示意,展示代数与平均适应度及因子公式复杂度的关系。 |

| 图4 | Size-Fair交叉示意,用子树结点匹配限制控制因子复杂度。 |

| 图5 | 子树结点数量计算示例。 |

| 图6 | GP001因子多空收益和分层累计收益(2016-2020年)。 |

| 图7 | GP002因子多空收益和分层累计收益(2016-2020年)。 |

| 图8 | GP003因子分层累计收益(2019-09-2020-09年)。 |

| 图9 | 2020年2月生成10因子相关性柱状图。 |

| 图10 | 上证50生成因子月频滚动样本外多空收益表现。 |

| 图11 | 沪深300 10因子样本内外多空收益表现(前5个)。 |

| 图12 | 沪深300 10因子样本内外多空收益表现(后5个)。 |

---
结语
本报告通过对遗传规划算法的低population高generation设计、Size-Fair交叉算法应用及多目标适应度函数创新,提供了面向统计套利因子挖掘的系统技术方案,克服了传统算法的性能瓶颈和样本外表现不足,实现因子挖掘算法在性能与风险控制上的突破,成果在沪深两大主要指数成分股中得到良好验证,具有很强的实际应用价值和扩展潜力。[page::0-12]