在最简单的情况下,拟合是指对于一组已知的离散点,给定一个带未知系数的函数,通过调整该函数中系数的取值,使得已知的离散点与函数之间的差别最小化的过程。量化交易策略研发中的最优化部分可以在一定程度上看作一个拟合的过程,通过优化量化交易策略的模型设置和参数设置来让策略尽量适应交易资产的内在特征,从而获得更高的收益和更低的风险。
在这个最优化的过程中,可能会产生出一些偏离实际目标的结果,依照一般量化交易研究的习惯,作者称之为过度拟合和欠拟合。实际上,在大的数据科学框架下,过度拟合和欠拟合具有更丰富的表现形式,下面的内容仅针对量化交易策略研究可能出现的情况进行说明,从而保证整本书内容的针对性。
这里用一个简单的例子来实际说明一下过度拟合和欠拟合。假设-一个数据集源于一个带有误差项的二次方程,如下:y=-x2+15x+200+8
其中ε是一个在[-50, 50]之间均匀分布的误差项。数据集一共包括 20个点,其中x分别选取从1 ~ 20的20个整数。如图3-2所示,星号为20个观测数据点,曲线为不带误差项的原始二次方程。
在实际工作中,研究人员并不知道数据来源的具体逻辑,因此可能会设置出各种各样的方法来拟合数据集。当研究者采用三次方程来拟合这20个数据点时,得到的方程曲线如图3-3所示。曲线与数据点的差距有一定缩小, 但是曲线形状与图3-2中原始方程的曲线存在走势上的差别,在图形最左侧有一个原始图形没有的下降趋势,右侧的下降则比原图更甚。使用复杂度比二次方程更高的三次方程来研究该数据集,造成的就是过度拟合的问题。
当研究人员使用一次方程来拟合这20个点的数据集时,得到的方程曲线如图3-4所示。很明显,用复杂度较低的线性方程拟合出的结果损失掉了原始曲线中先上升后下降的走势特性,而呈现出一个线性下降的趋势,这就是由欠拟合造成的。
上面这个例子简单化地展现了过度拟合和欠拟合在数据研究中的形式。对于量化交易策略而言,过度拟合指的是由于选取的策略或模型过于复杂,不仅适应了交易资产本身的内在属性,而且在优化过程中还刻画了噪声在样本数据中表现出的一些特性,过度地拟合了样本数据,从而造成偏差,影响到策略的盈利能力。在一些专业书籍中,过度拟合问题有时候也被称为曲线拟合。欠拟合则恰好相反,往往是由于选取的策略或者模型过于简单,适应交易资产内在特征的能力不强,拟合水平较低,因此盈利能力也就较弱。
就过度拟合和欠拟合的具体表现而言,两者有相似之处也有不同之处。正如上面所述,两种问题都会导致策略的实际盈利能力下降,这是它们的相同之处。但是欠拟合的量化交易策略由于对数据的描述和挖掘能力不足,往往在历史数据优化下和实际交易中都表现不好,因此在回溯测试时就可以比较直观地分辨出来。过度拟合的量化交易策略则不同,由于在拟合样本数据时过度优化,进而拟合了样本中噪声的特性,因此常常是历史数据优化下的结果很好,只有在实际交易中才会显著变差,也就是俗称的泛化能力低下。在实际的量化交易策略研发过程当中,这样的性质增加了过度拟合判别的难度。
在大部分情况下,一个量化交易策略往往既具有过度拟合的问题,也具有欠拟合的问题,原因在于金融资产的内在属性并不像物理学等学科所研究的对象一样,存在一个较为明确的运行逻辑,同时也比语音识别等数据科学问题的情况更加复杂和模糊,人们现在对于资产价格运行模式等问题的了解还处在非常浅层的状态。在实际工作中,研究选取的策略或模型可能只有一部分设置适应了交易资产的内在属性,相符的内在属性也只占交易资产整体属性的一部分,因此策略模型是欠拟合的。好在量化交易策略研发并不是一个需要绝对精确的学科,即使策略模型与数据内在特性相符的程度不大,只要存在这种适应性,就有可能为研发者带来可观的利润。与此同时,研究得到的策略模型的另外一部分设定可能就与交易资产的内在属性完全没有相关性,经过最优化等工作之后只是拟合了资产交易中的噪声,从而造成过度拟合的问题。
实际工作中,研究人员既需要减少量化交易策略过度拟合的程度,也要同时减少策略欠拟合的程度。解决欠拟合的途径较为清晰,就是不断地尝试各种各样的策略,基于更多、更好的策略模型来挖掘交易资产的内在特征,获得相应的盈利能力。当然,尝试新策略是量化交易策略研究工作的基本要求,因此欠拟合这一问题也较少地被研究人员所提及,大部分文献资料都更注重于过度拟合的问题,也存在许多相关论述。从本质上说,简化策略当然是一个行之有效的较少过度拟合的方法,冯.诺伊曼( John von Neumann)曾通过他人之口说出了“我能用四个参数拟合-头大象, 用五个参数让它摆动鼻子”的经典名育,参数过多、模型过于复杂可能会导致过度拟合这一看法已经成为一个公论。
但与此同时,简化策略又与研究者要解决欠拟合、尝试找到更合适策略的目标背道而驰。图3-5 给出了一个策略在简单和复杂之间变动时,欠拟合与过度拟合情况的粗略示例。由于交易资产的内在运行逻辑尚不清楚,因此任何一个交易策略都只能挖掘并利用数据内在特征的一部分, 也就是两个圆重合的浅灰色区域,而剩下的白色区域则是交易策略没有实际效用但是客观存在的部分。当策略复杂度增加时,策略就有可能更多的利用数据的特征,表现为浅灰色的重合区域增加,欠拟合问题得到缓解。但是同时,策略无效的白色区城也可能相应地增加,这一部分经过最优化就是过度报合的成因。
因此,在量化交易策略的研发工作中,策略的复杂程度、参数数量的设置等问题常常需要研究人员根据实际情况、过往经验来进行主观判断,没有一个固定的最优标准。好在针对问题测试过程而言,存在着一些可以用来判别过度拟合问题的技巧,因此研究者可以在适当增加量化交易策略复杂程度的基础上,通过这些技巧来尽量规避策略的过度拟合,本书将在第6章中介绍的推进分析正是一种处理过度拟合问题时行之有效的分析技巧。
除此之外,增加回溯测试时使用的样本量也是一个可能会产生作用的做法。如果量化交易策略所针对的交易资产内在特性没有随着时间产生变化,那么增加样本量可以扩展回溯测试的覆盖范围,从而在更大的区间内研究策略的稳定程度,而样本量的增加也可以让研究人员更自由地使用一些判断过度拟合的研究技巧,这样就能够在保证不造成欠拟合问题的条件下,更好地规避过度拟合的产生。在实践中增加样本量进行研究的做法也确实能够取得一定的效果,因此作者建议在可获得的数据量充足的前提下,还是应该尽可能地让回溯测试覆盖更广的范围。
不过究其根源,内在特性不随时间变化的假设本身是值得怀疑的,前面已经说过,人们现在对于资产价格运行等内在特性的了解还处于非常浅层的状态,即使研究者发现了某些规律并基于这此规律形成了可以盈利的策略,也不能保证这些规律会保持下去。在这种情况下,不经判断而盲目地增加数据量,就可能对量化交易策略的盈利能力造成误判。而且在中国这种运作时间较短、环境变化较快的市场上,该问题就更加严重。完全消除这个矛盾需要研究人员对本质问题充分理解和把握,这并不是仅靠一个合理的量化交易策略研发框架就可以解决的问题。