大岩视点

首页-智闻
2021-03-09

浅谈量化中的数据清洗:处理异常值

1615257081716313.jpg

在量化研究中,免不了对大量数据进行研究,而在研究之前,必不可少一道工序——数据清洗。市场上的大多研究报告中,都会介绍如何清洗所用数据,但少有报告直接分析清洗步骤带来的信息改变,以及做出的研究假设。笔者试图总结常见的清洗方法,将数据清洗定义为处理异常值和缺失值,同时讨论以下几个问题:

本主题将分为两篇小文,分别讨论异常值与缺失值。本文中,我们讨论关于异常值的清洗和假设。

什么是异常值

异常值,指的是数据中不合理的值,通常情况下,异常值的取值比较极端。异常值影响我们发现规律,我们需要分析后并去掉它们的影响。对于异常值,量化中常见的处理方法是截尾。我们先分析泛用的清洗方法,再来研究数据的特性,简单讨论股票价格里的异常值。

处理异常值的泛用方法——截尾

清洗异常值,在量化中泛用的做法是截尾。对于每个数据,定义一大一小两个数值,称之为上界和下界,把该数据中大于上界的数值变为上界;把该数据中小于下界的数值变为下界。上界和下界有两种常用定义方法,分位数法或标准差法。

显然,截尾操作将损失值过大和值过小的数据信息。这种清洗方式隐含了哪些假设?

隐含假设之一,少数数据不适合统计归纳。突发的事件和新闻会带来变化很大的数据,这部分信息不一定是当前模型能够学习到的,因此我们希望通过截尾,来减弱这些突发事件数据对其他数据造成的影响。

同时,在许多量化模型里,异常值对模型训练会产生较大的影响,我们隐含假设了模型应该发现的是重复了非常多次的规律,而不去学习到极少数数据中含有的信息。

需要说明的是,这个“少数数据不适合统计归纳”的假设,是量化数据的特色,并不是所有的大数据研究都隐含了这个假设。比如,在自然语言处理中,tf-idf的idf(Inverse Document Frequency),其主要思想是,包含某词条的文档越少,越说明该词条具有良好的分类能力。这样的思想并不适用于价量数据。

对股票涨幅异常值的精细处理

截尾虽然是泛用的数据清洗方式,但是对于具体的数据,我们有没有更加精细的处理方法呢?

我们以股价一天的涨幅为例,大多涨幅的数值在±10%之间,那么,一天涨40%是否合理?一天跌40%又是否合理?这时候,我们对股市规则的掌握,可以给我们带来更多精细的数据清洗方法。

a、股票会有分红和拆股,此时往往会使股票价格变小,尤其是拆股,可以让股票的价格大幅下降。此时股票的总市值并没有变化,它也不应该被视为股票下跌,复权的概念就是处理这个情况的,我们需要使用复权后的价格数据来计算涨幅。复权后的数据,损失了“突破四千大关”这样的研究想法。

b、股票刚上市的时候往往会大涨,比如科创板的股票,上市前5天都没有涨跌幅的限制。我们假设新股的涨幅和其他股票大涨的内在逻辑不一致,因此,量化通常不会把新股的数据加入模型。

c、创业板里,过去是10%的涨跌幅限制,现在是20%的涨跌幅限制,因此,现在创业板的20%的涨幅是正常的数据,而过去20%的涨跌幅更可能是异常值。

有了上述分析,我们就可以把数据清洗做得更加精细,更加合理。同时,即便我们仔细分析数据并精细处理了,再进行一次泛用的截尾操作还是必要的。股市的规则非常复杂,还有很多罕见的事件也影响着数据,泛用的截尾可以提供一层保险。

比如,部分借壳上市的股票,可能在停牌几年后,以同一个股票代码重新上市交易,这一日股价相对于停牌前的股价,也可能出现很高的涨幅。

小结

这些对异常值细致的观察,也不只用于清洗数据,它还可以产生一种量化策略:事件驱动。我们可以对上述的事件单独进行分析,构造出事件驱动策略。由于清洗后的数据损失了描述这些事件的信息,使用清洗后数据的量化模型不能反映这些事件带来的影响,而专门分析它们的事件驱动策略,正好填补了量化模型的空白,两者合起来,使我们最终的策略能更好的预测市场。


版权声明:本文由大岩资本科学投资专家思考原创,如有转载或引用,请注明出处。

联系我们

深圳嘉石大岩资本管理有限公司微信公众号
大岩资本官方公众号

深圳市福田区益田路5033号平安金融中心88层01单元

上海市浦东新区陆家嘴街道富城路99号 (震旦国际大楼)27层

香港中环德辅道中188号金龙中心17楼1701室

shenzhen@jaspercapital.com
求职简历请投递至 hr@jaspercapital.com
© 2013 - 2023 • Jasper Capital 粤ICP备13055300号-2