Python量化投资:技术、模型与策略
上QQ阅读APP看书,第一时间看更新

第6章 数据预处理和初步探索

现实世界中的数据量越来越大,也越来越容易受到噪声、缺失值和不一致数据等的影响。数据库太大,如若有不同的来源(多半确实会有,像Wind的数据,来源就十分广泛,比如交易所、各公司的年报、各政府机关网站,还有其他大大小小的供应商等),那么脏数据问题一定会存在,这是不可避免的。

为了使数据中的各种问题对我们的建模影响最小化,需要对数据进行预处理。

在收集到初步的样本数据之后,接下来需要考虑的几个问题是:样本数据的质量是否有问题,如果有问题,应该怎么处理?样本数据是否出现了意外的情况?样本数据包含哪些基本的统计特征,有没有明显的规律?为了便于后续的深入分析和建模,我们需要对数据进行哪些处理?

通过数据清洗、绘制图表,以及基本统计量的计算,我们可以对数据做一个初步的分析和探索,为后面的深入分析和建模打下基础。

在实际操作中,数据预处理通常分为两大步,一是数据清洗,二是数据的基本分析。这两步并不一定是按先后顺序进行的,通常也会相互影响。比如,有的错误数据(不可能出现的极值),必须通过基本的统计分析才能发现。

有一种说法,数据的预处理会占据绝大部分的工作量,有的甚至会达到所有工作量的80%,建模和算法真正的工作量其实只有20%。这个结论在互联网或者传统IT领域,特别是面对大量的非结构化数据时,确实是事实。

但在金融二级市场上就不太一样了,由于很多现成的供应商已经将数据处理好并结构化了,所以实际的数据预处理工作量并没有那么大,但40%的比例应该是有的。