中国数据新闻工作坊培训手册第四章 – 数据可靠性和数据清理

分享给朋友:

虽然网上有很多免费数据,你经常会发现,这些数据并不是你需要的格式。这是数据新闻工作者常常面临的一个挑战。事实上,做数据新闻项目时,大部分时间常常都花在了获得准确、可靠并是可用格式的数据。本章探讨评估数据可靠性、保证数据干净可用方面的常见问题。

保证数据干净和可用的过程就叫数据清理。 数据可靠性和数据清理1 这是从美国使馆空气质量指数微博网页上复制粘贴过来的数据。你可以看到有很多乱码。这主要是因为该数据集经过了语言设置各异的不同电脑的处理。而我们真正需要的不过是具有日期和数值的一个电子表格。 怎样能把这些数据转变为干净的电子表格呢? 如果我们只在EXCEL中打开这个文件,效果不会好。但到本章结束的时候,你就会知道如何将此数据清理干净。 我们随后会学一个很给力的工具,叫做OpenRefine。OpenRefine能够解决很多类型的数据清理问题。

常见的“脏数据”问题

我们获得的数据经常会有问题:数据格式可能不对、同一个名字可能有不同的拼写方式、数据输入时可能有打字错误、有的数据可能缺失、数据质量有问题、计算结果和你设想的不同、数据样本可能有偏向、甚至数据部分或全部都是假的。这些时候我们就说数据是“脏”的,必须要先清理,才能做分析。

上面是“美国”和“台湾”这两个名字的不同拼法。同一名字的不同拼法会在你的数据集里引起大问题。任何时候,只要你有类型性数据,类型名必须得前后拼写一贯。如果你要计数 Taiwan 在你的数据集中出现多少次,而你只就一种拼法做了搜索,你就会错过所有其它拼写方式。更糟糕的是,如果你没有意识到有这个问题,你甚至都不知道所有其它的拼写方式都没有被计数。这种情况在你从社交媒体上收集数据时尤其常见。
数据可靠性和数据清理3

有的时候不同拼写方式的问题可以严重到荒唐的程度。比如,利比亚前独裁者卡扎菲的名字有200多种拼法。上面是美联社有关卡扎菲名字所有拼法列单中的一部分。

数字也会有类似问题。
数据可靠性和数据清理4 人眼看这些数字很容易,但对电脑来说, 它们是表达数字的五种完全不同的方式。一个电脑表格程序并不会自动懂得像“million” (百万)这样的字眼。这种情况一般可能会在你把来自不同数据源的数据组合时产生,因为不同数据源产生数据时输入方法不一致。设想你要把一长列的数字取平均值,其中一个数字是2.34 billion (billion = 10 亿),而电脑却以为它是2.34。你得到的答案会和实际相去甚远。 数据可靠性和数据清理5 这一列就好多了。与上面同样的数据,但很干净,因为统一了格式。 以上所有例子中和很多其它情况下,我们都需要对数据进行清理。理想的情况是,我们能够用电脑来做清理,而不是亲自去检查每个值。在处理大量数据时,我们需要自动化,因为数据越多,我们能够关注每个数据的时间就越少。另外,靠人眼检查一长串数据很容易出错,而且出了错自己也许永远都不知道。 可靠性检查 一旦拿到一套数据,你必须对其质量进行评估。 评估质量的方式其实只有两种:

  1. 内部合理性。内部合理性的意思是把数据与其自身进行比较。这种检查可以通过直方图来做,也可以通过检查行数、确认数字加起来与其总和相符等方法。
  2. 外部合理性。外部合理性的意思是把数据和其它东西进行比较,包括其它数据源、专家知识、以前版本和“常识性”检测。

这儿举一个例子。前一段时间,人们发现有关中国每个省份捕鱼量的官方统计数字有问题。这些数字很长时间以来,每年都持增长趋势。但是,有一天,一个科学家把这些数字加起来后,发现每年中国各省份捕鱼量的总和超过了人类估计整个大洋里所有的鱼量。这就是一个外部检查的例子。我们把手头的数据和其它数据源进行比较。如果手头数据显示出不可能是真实的东西,那就意味着这些数据有问题。 一个快速检查数据质量的重要技巧是使用直方图。 数据可靠性和数据清理6

学生身高

直方图是一个简单的对数据进行可视化的办法。直方图显示了一个数据集中,每个区间内数字的数量。在上例中,你可以看到,38个人的身高是在1.44 到1.48这个区间。 数据可靠性和数据清理7 上面是一些工资数据,来自《德州论坛报》发表的一个大的数据库。该数据库包括得州60多万名政府雇员的工资情况。 数据可靠性和数据清理8 这是同样数据的直方图。德州政府雇员中谁的工资最高?不是州长,而是大学球队的主教练们 - 这也正是《德州论坛报》对工资数据排序后所显示的事实之一。 根据此直方图,你能否想出一个有关政府雇员工资的报道主题?仅仅看一下这个图,我们能得到什么结论呢?一个结论是大多数人的年薪在5万美元左右。有很多人的年薪低于这个数字,但也有一些人的年薪远远高于它。仅仅从这个直方图,我们就可以看出这些事实。 数据可靠性和数据清理9 这是同样数据的直方图,但我们故意弄出了点问题。我们把年薪8万到9万那个区间的所有数据都拿掉了。你可以一眼就看出这点。所以这是看出某类缺失数据的一个办法。 数据可靠性和数据清理10 那这个直方图呢?我们对数据做了什么处理呢?实际数字又是什么样子? 数据可靠性和数据清理11 考察一下实际数字,我们可以看出,所有的数据都经过四舍五入,变成了与其数值最相近的整万数。在此例中这点很容易看出。可是,要是数据来自10个不同的数据源,其中一个做了这样的处理,其它9个都没有,你光靠看数字是看不出来的。但考察一下直方图,你可以很快就看出来。 数据可靠性和数据清理12 这儿是另一个直方图,其左侧有个很突出的高峰。这也许是因为数据中有很多零值或无值。但事实上是别的原因所致。 数据可靠性和数据清理13 原来其中有的数字是以美元为单位,而有的是以千美元为单位。这样的问题,即同一数据集中数字使用不同单位,很常见,尤其当你将来自不同数据源的数据组合时。 现在我们看一个使用直方图找到坏数据的真实例子。 数据可靠性和数据清理14 该图表显示的是俄国2011年选举数据。很多国际观察家都认为此选举是经过操纵的。图中横轴显示的是每个区里投票人数的比例。上边的直方图里,纵轴显示的是在每个区里投普京票的人数。下边的直方图里,纵轴显示的是投其它党派票的人数。为什么普京所得选票的形状与其他人所得选票的形状不同呢? 是什么导致了上边和下边直方图右方的不同?我们怎么会得到这样的形状?这种形状说明了什么? 通常情况下,一个选区里大概一半的人会出来投票。很多选区里都有90-100%的人出来投票的情况极为鲜见。下边的直方图符合全世界各地选举的正常形状,因为图的右方只是全部投票中的一小部分。而在上边直方图的右方,当90%甚至100%的选民都投票时,很多很多的票都投给了普京。怎么回事呢?真的有那么多的选区中每个人都去投了普京的票?如果我们相信此次选举是公平的话,那可以这么说。但是否还有别的原因可以解释我们怎么得到了这样一个形状? 大多数观察家都认为,这些直方图显示了选举舞弊。实质上,在大量选区里,没有去投票的所有人的选票都被自动划给了普京。就像上面讲到的年薪和身高例子里一样,大多数正常直方图在左右两边都有一个长尾巴。极端的情况及其少见。 也许还有另外一种解释。也许在有的选区,有一种什么办法可以强迫所有人都去投票。但这肯定也很异常。请注意,仅仅这些数据本身,并不能构成选举舞弊的证据。这些数据仅仅是一个证据,还有很多其它的证据,其中一些不是统计数字。比如,一个观察者录下了一个选举工作人员填写假选票的视频。数据新闻中需要记取的重要一点就是,虽然数据非常有用,但有很多非数据性的不同类型的证据。你可以写出一个有关选举舞弊的报道,报道中根本不必谈选举的数据 - 也许你的报道讲的是一个人被收买退出竞选。我们的数据不能证明舞弊,但这些数据却肯定是和舞弊相符的,是事件整体规律中让人生疑的一部分。 数据可靠性和数据清理15 这是俄国2011年选举数据的另外一个直方图。该图显示了每个选区中普京所得选票的比例。约有500个选区报告说,50%的选票是投给普京的。 这个直方图有什么问题?为什么这个图是舞弊的证据呢? 图中数字被修整了:每隔5个百分点就有一个高峰。为什么有400个选区报告普京得票率为80%,而只有300个报告81%或79%?怎么回事?是什么导致了这样一种规律? 也许有人捏造了这些数字。制造看上去很自然的数字非常困难,所以很多时候,当人们捏造数字时,出来的数字就会有这样奇怪的规律。另外一种可能是有人对数字做了修理。可能有人看着投票数字说,“嗯,普京得了82%的选票,我把它写成85%得了”。不管是哪一种情况,有人在改数字,而选举结果是不应该改动的。 清理“脏”数据 虽然大多数时候数据是真实和正确的,其格式仍然可能会是一个问题。格式不好用的数据就叫“脏”数据。在一个数据新闻项目里,通常一半以上的时间都会被用在清理数据上。这样的情况很正常。 清理脏数据的方式很多。你可以自己用手编辑(如果数据量小的话),用电子表格对其进行排序、合并或者拆分,也可以用Open Refine 修正其格式。但是,如果数据收集不当,你不见得总能对其进行清理。 这是一个数据清理的例子。现在假定我们手头获得了德州政府部门雇员的年薪数字。其中有的数字是以千美元为单位,有的是以美元为单位。你必须得解决这个问题。 怎么解决呢?一个办法是说,“低于100的数字不可能是年薪”。这样我们就会把所有小于100的数字拿出来,然后乘以1000. 另外一个更高效的清理办法是使用Open Refine 。Open Refine是一个强有力的清理工具,是谷歌专门为数据新闻工作者而开发的。你可以在你的电脑上运行Open Refine,也可以跟着我们的实操练习指南去操作。 点击这里查看Open Refine教程: http://openrefine.org/ 在这儿下载Open Refine: http://openrefine.org/download.html


点击进入下一章节:使用Open Refine清理数据 想回到目录请点击这里

作者简介

数据新闻工作坊

数据新闻网以引介全球范围内最顶尖的数据新闻实践为初衷,以推动数据开放及媒体革新为宗旨,面向中国的新闻从业者、媒体管理者、新传教育者以及对传媒感兴趣的设计师、程序员,提供线上信息平台与线下交流机会。