问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何防止量化投资中的过度拟合?

创作时间:
作者:
@小白创作中心

如何防止量化投资中的过度拟合?

引用
1
来源
1.
https://xueqiu.com/6146592061/324590178

量化投资中,过度拟合是一个常见的问题。本文通过一个具体的均线策略案例,详细解释了过度拟合的概念,并介绍了通过训练区和核对区来验证策略的有效性。

很多量化投资的初学者,会做出一个收益率极高的模型策略,但往往按照这个策略去实战后发现实际收益率并没那么高,甚至差异非常大?这是量化投资经常遇到的一个问题。这个问题背后的原因,往往是过度拟合了。

什么叫过度拟合呢?过度拟合是指模型在训练数据上表现出色,但在新的、未见过的数据上表现不佳的现象。这通常是因为模型过于复杂,学习了训练数据中的噪声和特定细节,而没有捕捉到数据背后的真实规律。通俗的打个比方,就好比裁缝按照你的身材做了一件过于贴身的衣服,稍有发福就穿不下了。

为了防止过度拟合(Overfitting),将数据分为训练区(Training Set)和核对区(Validation Set)是一种常见的做法。这种方法的核心思想是:

  1. 训练区:用于开发和优化策略参数,通过历史数据拟合模型。
  2. 核对区:用于验证策略在未见数据上的表现,评估其泛化能力。

如果在训练区表现很好,到了核对区的表现大相径庭,那十有八九是过度拟合了。需要调整因子和权重来使得两个区的表现接近。一般数据比例在7:3或者8:2之间,太大太小都不太合适。

下面我们通过一个案例来说明这个问题。中证A500是最近流行的一个经典指数,但回算历史数据从2005年开始有19年数据,我们做一个最简单的策略,均线策略,N天均线上的持有指数,均线下的空仓,佣金万5,我们把训练区设定在2005年到2022年,核对区设定在2023年到2025年,那么这个N是几天才是最佳呢?传统的K线理论是老师告诉你的,比如说是30天或者40天,然后老师会举出一个或者几个例子来说明这个理论的正确性。

很少有人会思考:老师举出的案例可能只是幸存者偏差,这就导致了K线理论老师说的头头是道,自己一做很多就失败。

量化投资和K线方法的最大区别就是量化投资用量化模型来检验,不用投入真金白银;而K线投资只能用自己的真金白银去检验,不仅成本高,耗时长,而且数量也少很多。

我们来看看,当N=30-100天的时候,在2005-2020年的训练区的表现结果:

我们可以从上表中看到,N=40时年化收益率13.73%最高,其次时N=70时的13.58%,差异不是太大,但年亏损最大,40天策略要25.23%,而70天策略只有16.06%,而且年平均交易次数,70天策略只有12次,而40天策略17次。综合来看,还是N=70天策略为佳。

那么70天策略在核对区的表现是否好呢?我们再来计算一下,得到结果如下:

整体来看,我们从训练区得到的最佳策略,在核对区表现不能算最优,但也是次优,70天均线策略在核对区的年化收益率7.86%虽然不高,但也大大跑赢了A500本身。虽然事后看,在核对区里最佳是60天策略,但这是事后的。

另外值得注意的是,70天策略在今年不到2个月时间里是亏了1.93%,而A500本身今年的涨幅是2.82%,而今年最佳的30天策略,去年却跑输指数。再仔细看,不管N取多少,总有跑输的年份,所以量化不是神话,量化投资说到底是一种概率优先的策略,短期跑赢跑输都有可能,我们是要看长期跑赢的。

A500标的,和均线策略,都只是这里用来说明解决过度拟合的一个例子,并不是最佳标的和最佳策略,而且A500这里用的是价格指数,并没包括分红,均线策略也过于简单,比如可以设置阻尼值来解决均线上下频繁交易的问题等等。

总之这是一个为了说明问题而简化的模型,离开实战还有很长一段距离,大家不要轻易尝试。

另外在设置训练区和核对区的时候,如果数据量很多,可以采用交叉验证,把这两个区分段设置,比如第一次:训练区(2010-2015),核对区(2016-2017);第二次:训练区(2012-2017),核对区(2018-2019)。或者采用滚动窗口法,如训练区:2010-2015年;核对区:2016年;然后滚动至训练区:2011-2016年,核对区:2017年,依此类推。

多次使用核对区可能导致策略间接拟合核对区数据。因此,可以把数据划分成训练区、核对区、测试区(TestSet)。测试区仅在最终评估时使用,避免数据泄露。或者限制核对区的使用次数,避免反复调整策略。

其他防止过度拟合的方法有:

  • 简化模型,减少参数数量,避免复杂模型对噪声的敏感。
  • 样本外测试:使用完全独立的数据集(如不同市场或时间段)进行最终测试,确保策略的普适性。
  • 经济逻辑验证:确保策略参数具有经济意义,而非纯粹的数据挖掘结果。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号