在量化研究中,免不了对大量数据进行研究,而在研究之前,必不可少一道工序——数据清洗。市场上的大多研究报告中,都会介绍如何清洗所用数据,但少有报告直接分析清洗步骤带来的信息改变,以及做出的研究假设。笔者试图总结常见的清洗方法,将数据清洗定义为处理异常值和缺失值,同时讨论以下几个问题:
什么是异常值和缺失值?
清洗丢失了哪些数据信息?
清洗隐含了哪些研究假设?
本主题将分为两篇小文,分别讨论异常值与缺失值。本文中,我们讨论关于异常值的清洗和假设。
什么是异常值
异常值,指的是数据中不合理的值,通常情况下,异常值的取值比较极端。异常值影响我们发现规律,我们需要分析后并去掉它们的影响。对于异常值,量化中常见的处理方法是截尾。我们先分析泛用的清洗方法,再来研究数据的特性,简单讨论股票价格里的异常值。
处理异常值的泛用方法——截尾
清洗异常值,在量化中泛用的做法是截尾。对于每个数据,定义一大一小两个数值,称之为上界和下界,把该数据中大于上界的数值变为上界;把该数据中小于下界的数值变为下界。上界和下界有两种常用定义方法,分位数法或标准差法。
分位数法:将数据排序,取其分位数为上下界,通常可以是99%和1%。
标准差法:将数据均值加减3~5个标准差,定义为上下界。
显然,截尾操作将损失值过大和值过小的数据信息。这种清洗方式隐含了哪些假设?