一、非线性因子概述

什么是非线性因子

聊因子之前,我先问个问题:

你见过完美的线性关系吗?

反正我没见过。在真实的金融市场里,因子和收益之间的关系,几乎从来不是一条直线。

非线性因子,说白了就是那些不能用简单线性公式描述的因子关系。比如:

  • 换手率低到一定程度,收益反而变差
  • 波动率超过某个阈值,收益开始反转
  • 市值因子在小盘和大盘两端表现不同

这些都不是一条直线能画出来的。我刚开始做量化那会儿,总觉得线性模型够用了。后来被市场狠狠教育了一顿——有些信号,线性模型根本抓不住。

核心定义:非线性因子是指因子值与预期收益之间存在曲线关系、阈值效应或交互效应的因子。简单说,就是因子值翻倍,收益不一定翻倍。

线性模型 vs 非线性模型

咱们直接上对比。我整理了一张表,你一看就明白:

对比维度 线性模型 非线性模型
数学形式 y = wx + b y = f(x),f可以是任意函数
可解释性 高,系数直接反映影响 低,需要额外解释方法
过拟合风险 高,需要正则化
捕捉复杂模式
计算效率 慢(尤其树模型和神经网络)
典型代表 线性回归、Fama-French XGBoost、神经网络、样条回归

我个人习惯是:先用线性模型跑一遍,看看哪些因子有潜力。然后对表现好的因子做非线性转换,往往能挖到额外收益。

举个例子。我记得有一次做A股动量因子,线性模型跑出来IC只有0.02,几乎没信号。后来我试着把动量分成三段——低、中、高——发现中间段的动量其实很有效,只是被两端拖累了。这就是典型的非线性关系。

我的经验:线性模型适合做"粗筛",非线性模型适合做"精炼"。别一上来就上复杂模型,容易过拟合。

为什么需要非线性转换

这个问题其实可以反过来问:如果线性模型够用,为什么还要折腾?

原因有三:

  1. 市场本身就是非线性的——投资者的情绪、资金流向、政策冲击,这些都不是线性叠加的。你想想看,一个利好消息在牛市和熊市里的影响能一样吗?
  2. 因子存在阈值效应——比如市值因子,小盘股和大盘股的表现差异,不是市值每增加1亿就线性变化。我曾经做过一个回测,把市值取对数后,IC直接从0.03提升到0.08。
  3. 因子之间存在交互——低波动+高动量,和单独看低波动或高动量,效果完全不同。线性模型没法自动捕捉这种组合效应。

嗯,这里要注意:非线性转换不是万能药。我见过有人把因子做了十几种变换,结果回测漂亮,实盘一塌糊涂。为什么?过拟合了。

避坑指南:我曾经犯过一个错误——对同一个因子同时做平方、开方、对数、Box-Cox变换,然后全部扔进模型。结果模型在样本外表现极差。后来我学乖了:非线性转换要有业务逻辑支撑,别为了非线性而非线性。

下面这张图,是我自己总结的非线性因子处理流程:

非线性因子处理流程 原始因子 线性IC检验 IC显著? 直接使用 线性模型 非线性转换 对数/平方/分箱/样条 交叉验证 防止过拟合

这张图的核心逻辑很简单:先检验线性IC,显著就直接用;不显著再做非线性转换,最后一定要交叉验证。我每次做因子研究都走这个流程,基本没出过大问题。

一个小技巧:做非线性转换前,先画散点图看看因子和收益的关系。如果肉眼都看不出模式,那非线性模型也很难学到什么。

最后说一句:非线性因子转换不是银弹。它是个工具,用好了能提升收益预测的精度,用不好就是过拟合的温床。关键还是理解你的因子、理解你的市场。


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