走出数据泥沼
作为一个数据分析工作者,你在各种教科书和各种教程中,学会了各种各样的统计分析方法:从最一般的描述性统计,到差异检验、参数估计、相关回归,再到看起来很酷炫的各种建模方法、机器学习算法。
这些是很有用没错。
但是他们常常忘记了告诉你,所有这一切分析和有意义的结论,都是基于干净的、完整的、每个变量和个案都清清楚楚的数据实现的。
而你在实践中几乎不可能拿到这样的数据,你实际面对的数据多半充满了缺失值、错误值、重复值、乱七八糟的字符串、糟糕的格式……投入数据分析软件或程序中之后,只会收获各种报错,分析结果充满了不确定性。
有个说法说数据分析的工作中,80%的时间都是用来清理脏数据,这多半是真的。
在跟这样的脏数据搏斗了很多次之后,我终于决定坐下来理一理,让一份脏数据变干净,变得可以进行最终的分析,究竟需要做些什么?以及有哪些方法。
变量与个案
我们面对的数据基本上都是以表格的形式呈现:
- 每一列(column)是一个变量(variable),或者叫字段(field);
- 每一行(row)是一个个案(case),或者叫记录(record)。
在这里,我会按照统计的一般习惯,称呼它们为“变量”和“个案”。
检查数据
在拿到一份数据后,要先粗略的检查这份数据,并明确以下问题:
(最好把每个问题的答案都记录下来)
1、数据来源
- 数据来源是哪?从哪里得到的?
- 这个数据源可靠吗?如果从数据中发现了问题,能够回溯回去吗?
2、取样范围和方式
- When - 这批数据取样的时间范围是什么?
- Where - 数据样本是从什么地方/平台获得的?
- Who - 数据样本的对象/人群是什么?
- How - 数据样本是用什么方式得到的?
3、样本量
- 样本量多大?符合你的需要吗?
4、变量
- 有哪些变量,它们的含义都是什么?
- 变量有明确的取值范围吗?如果有,是什么?
- 这些变量符合你的需要吗?
下一步,我们要对这些数据,做一个简单粗暴的描述性统计分析,以概括的了解数据全貌,并找出其中存在的问题。
走出数据泥沼:数据清理第1步——来个简单粗暴的描述性统计吧