数据分析师养成宝典
上QQ阅读APP看书,第一时间看更新

第2章 理解数据

同样是一个数字,在数据敏感的人眼中与对数据不敏感的人眼中是完全不一样的。如果公司年收入8000万元,在数据敏感的人眼中看到的不仅仅是这个数字,还包括数据背后隐藏的信息:8000万元是由哪几个业务收入构成,哪一个业务收入占主要部分,最高业务收入所对应的消费人群和地区又是哪些等。

所以,做数据分析,重点不在数据,而在数据敏感,就是能清楚数据异常背后的原因,这需要经验,也需要你的思考和执行力。

2.1 数据是什么

数据是什么?大部分人会含糊地回答说,数据是一种类似电子表格的东西,或者一大堆数字,有点技术背景的人会提及数据库或数据仓库。然而,这些回答只说明了获取数据的格式和数据的存储方式,并未说明数据的本质是什么,以及特定的数据集代表着什么。人们很容易陷入一种误区,当需要数据的时候,通常会得到一个计算机文件,很难把计算机输出的信息看作其他任何东西。然而,透过数据现象看本质,就能得到更多有意义的东西,就能讲一个故事。

近年来,随着物联网和大数据技术的成熟,人的行为可以简单地作为数据存储起来,如果能从这些存储的数据中推导出与用户购买行为相关的规则,那么将会颠覆商业世界里一直以来所遵循的某类经验,而在数据分析的指导下,将会打开新的商业局面。

举个日常生活的例子,理解数据是什么。大多数人会经常称体重,称重的时候,体重数值并没有多大意义(我们并不能说60kg比较好,61kg就糟糕了),然而,根据这些观测数据,可以完成以下事情:

1)根据自己的性别、年龄、身高等其他数据,推断理想的健康体重,并将其设定为目标值。

2)通过长期跟踪测量体重,测得体重随时间变化的观测数据,并将过去暴饮暴食等行为与体重变化联系起来,从而反省自己的行为。

3)通过收集拥有理想身材的人的运动和饮食生活等方面的数据,效仿他们的生活方式。

在商业领域里也是一样,人们通常会通过观测数据来推测出某种因果关系,再用这种因果关系预测未来。越来越多的企业为这种工作增设一个专门的职位,即数据分析师。

数据不仅仅是数字,它描绘了现实的世界,与照片捕捉了瞬间的情景一样,数据是现实世界的一个快照。

数据、信息、知识之间存在一定的区别和联系,如图2.1所示。

图2.1 数据、信息、知识转化关系

从图2.1可知:

1)分析报告源于数据,而不是知识。知识在数据转化为信息的过程中发挥着支撑作用。在知识的作用下,数据的原有结构与功能发生了改变,并转化为有语义的数据,即信息。对信息进行综合就可以得到有价值的信息。

2)知识的利用具有普遍性,贯穿整个转化过程。从数据变成信息的过程需要知识,从信息变成分析报告的过程同样也需要知识。

把转化模型应用于实践,可以更加清楚地发现数据、信息与分析报告之间的转化关系,如图2.2所示。

图2.2 数据、信息、知识转化关系应用

2.2 数据所依存的背景

背景信息可以完全改变你对某一个数据集的看法,它能帮助你确定数据代表着什么以及如何解释。在确切了解了数据的含义之后,你的理解会帮你找出有趣的信息,从而带来有价值的可视化效果。

离开背景数据就毫无用处了,使用数据而不了解除数值本身之外的任何信息,就好比拿断章取义的片段作为文章的主要论点引用一样。这样做或许没有问题,但却可能完全误解说话人的意思。

首先必须了解何人、如何、何事、何时、何地以及何因,即元数据,或者说关于数据的数据,然后才能了解数据的本质是什么。

何人(Who):相对于曾经歪曲事实、坏人名声的名人八卦网站,大报的引述会更有分量。类似地,相对于随机的在线调查,声誉好的信息源通常意味着更高的准确性。

如何(How):人们常常会忽略方法论的内容,因为方法多数是复杂的且面向技术受众的,然而,大致了解怎样获取你感兴趣的数据还是值得的。

如果数据是你自己收集的,那就没问题,但如果数据由一个素昧平生的人提供,而你只是从网上获取到的,那如何知道它有多好呢?无条件相信,还是调查一下?我们不需要知道每种数据集背后精确的统计模型,但要小心小样本,样本小,误差率就高;同时也要小心不合适的假设,比如包含不一致或不相关信息的指数或排名。

有时候,人们创建指数来评估各国的生活质量,常把文化水平这样的指标作为一项因素。然而有的国家不一定有最新的信息,于是数据收集者干脆就使用十几年前的评估。于是问题就来了,因为只有当十年前的识字率与今天相当,这样的指数才有意义,但事实却未必如此(很可能不是)。

何事(What):最终目的是要知道自己的数据是关于什么的,围绕在数字周围的信息是什么。你可以跟学科专家交流、阅读论文及相关文件。

在统计学课程中,通常会学习到一些分析方法,例如假设检验、回归分析和建模,因为此时的目标是学习数学和概念。这是脱离现实的,当我们接触到现实世界的数据,目标便转移到信息收集上来了,关注点从“这些数字包含了什么”转移到了“这些数据代表现实中的什么事情?数据合理吗?它又是如何与其他数据关联的”等上面。

用相同的方法对待所有的数据集,用千篇一律的方法和工具处理所有数据集,这是一种严重的错误。

何时(When):数据大都以某种方式与时间关联。数据可能是一个时间序列,或者是特定时期的一组快照。不论是哪一种,都必须清楚知道数据是什么时候采集的。几十年前的评估与现在的不能等同。这看似显而易见,但由于只能得到旧数据,于是很多人便把旧数据当成现在的对付一下,这是一种常见的错误。事在变,人在变,地点也在变,数据自然也会变。

何地(Where):正如事情会随着时间变化,数据也会随着城市和国家的不同而变化。例如,不要将来自少数几个国家的数据推及整个世界。同样的道理也适用于数字定位。来自Twitter 或Facebook 之类网站的数据能够概括网站用户的行为,但未必适用于物理世界。

为何(Why):最后必须了解收集数据的原因,通常这是为了检查一下数据是否存在偏颇。有时人们收集甚至捏造数据只是为了应付某项议程,应当警惕这种情况。

收集数据后的首要任务就是竭尽所能地了解自己的数据,这样数据分析和可视化会因此而增色,才能把自己知道的内容传达给读者。然而,拥有数据并不意味着应当做成图形并与他人分享。背景信息能帮助你为数据图形增添一个维度—— 一层信息,但有时背景信息意味着你需要对信息有所保留,因为那样做才是正确的。

最后再回到“数据到底代表什么” 上来。数据是对现实生活的抽象表达,而现实生活是复杂的。但是,如果能收集到足够多的背景信息,那么至少也能知道该怎样努力去理解它。

2.3 数据维度

数据分类是帮助人们理解数据的另一个重要途径。图2.3给出了从三个维度分析数据特征的方法。

图2.3 数据的维度

1)从数据的结构化程度看,可分为结构化数据、半结构化数据和非结构化数据,三者之间的区别见表2.1。

表2.1 结构化数据、半结构化数据和非结构化数据对比

在小数据时代,结构化数据处理占主要地位,随着大数据技术的成熟,处理非结构化数据是重点。

2)从数据的加工程度看,可分为裸数据、专家数据、信息和价值,四者之间的关系如图2.4所示。

图2.4 裸数据、专家数据、信息和价值之间的关系

这里强调一下,裸数据、专家数据、信息和价值是相对的,取决于分析目标和个人对数据的理解。专家数据的质量对数据分析的结果影响甚远,获取专家数据是整个数据分析过程中最困难、最耗时、最具挑战的环节,指标设计篇专门讨论专家数据生成的一些技术。

3)从数据的抽象程度看,可分为内容、元数据和数据对象,三者之间的关系如图2.5所示。

图2.5 内容、元数据和数据对象之间关系

内容可以是结构化数据、半结构化数据和非结构化数据;元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据,即关于数据的知识。元数据的基本特点主要有:

①元数据是关于数据的结构化的数据,它不一定是数字形式的,可来自不同的资源。

②元数据是与对象相关的数据,此数据使其潜在的用户不必先具备对这些对象的存在和特征的完整认识。

③元数据是对信息包裹(Information Package)的编码的描述。

④元数据包含用于描述信息对象的内容和位置的数据元素集,促进了网络环境中信息对象的发现和检索。

⑤元数据不仅对信息对象进行描述,还能够描述资源的使用环境、管理、加工、保存和使用等方面的情况。

⑥在信息对象或系统的生命周期中自然增加元数据。

⑦元数据常规定义中的“数据”是表示事务性质的符号,是进行各种统计、计算、科学研究、技术设计所依据的数值,或是数字化、公式化、代码化、图表化的信息。

元数据具有以下优点:

①自描述。公共语言运行库模块和程序集是自描述的。模块的元数据包含与另一个模块进行交互所需的全部信息。元数据自动提供COM中接口定义语言(IDL)的功能,允许将一个文件同时用于定义和实现。运行库模块和程序集甚至不需要向操作系统注册。运行库使用的说明始终反映编译文件中的实际代码,从而提高应用程序的可靠性。

②设计。元数据提供所有必需的有关已编译代码的信息,以供从用不同语言编写的PE文件中继承类。开发时可以创建用任何托管语言(任何面向公共语言运行库的语言)编写的任何类的实例,而不用担心显式封送处理或使用自定义的互用代码。

对数据内容与其元数据进行封装或关联后得到的更高层次的数据——数据对象。数据对象和数据内容是相对的,下层数据是上层数据对象的数据内容,上层数据内容是下层数据内容的数据对象。例如,在R语言中,factor是字符数据的数据对象,同时又是list数据对象的数据内容。

2.4 数据敏感

数据分析应该是快乐的。但是现实中,对于很多从业者而言,数据分析是痛苦的。快乐都源于对数据敏感,来自于自己的无知。无知产生好奇,好奇心带来惊喜,惊喜带来快乐。举几个具体的例子。

1)对车联网的无知,对车联网数据进行相关分析带给你的惊喜是:基于数据定义的急加速急刹车是如此有趣。

2)对互联网征信的无知,对其数据挖掘告诉我,原来一个人的简历中就包含着信用信息,这是一个大大的惊喜。

3)对广告行业的无知,刺激你去关心:广告费到底浪费在哪里?而搜索引擎营销的数据表明:搜索文本中,一个小小的空格,能够产生巨大的广告效果差异。

4)对社交网络的无知,你会好奇,一个人的社交地位,会如何影响他的行为?基于SNS数据的数据表明,社交中处于重要位置的人,有可能更加忠诚。

这样的例子可以举出很多,对数据敏感不在数据,不在统计软件,不在分析方法,而在于自己的无知,以及无知所产生的好奇心!

数据敏感度是一个人对数据的主观感觉,能帮助你从众多数据中挑选出想要的数据,甄别出不一样的数据点。不妨做一个小测试,在空格内填补缺失的数据:

1,3,6,__,15,21 (答案:10)

1,3,7,__,31,63 (答案:15)

数字敏感度就是极短时间内看出空格应该填什么数字的能力。数据敏感度在数据分析中必不可少,不可或缺。如果对每天众多的数据报表缺乏敏感度,最后只能沦为做做“报表”。

既然数据敏感度如此重要,那么数据敏感度能否培养呢?

举一个例子:

表2.2所示为某公司1月A~H八个指标,请1分钟内观察表2.2,找出5个异常。

一眼看去密密麻麻全是数字,看着一定很头晕,没有结合实际业务的数据实在枯燥无味。仔细观察可以发现这样几个问题:

1)A与B列除了1月19日缺失,其他日期全都有数值。

2)C与D、E与F、G与H,两两组合要么同时缺失,要么同时有效。

3)1月20日到1月31日的数值与1月1日到1月12日的相同。

4)A与B、C与D、E与F、G与H在90%情况下是相同的。

5)1月14、的各项指标明显低于其他日期。

……

像上面的异常数据查找还可以很多,每个人从不同角度都可能有不同的发现,这里并没有标准答案。同样地,这里需要解释一下,异常数据并不是说这个数据不正常,由于业务的交叉性和相互影响,异常的性质有可能是规律的性质。就好像在啤酒和尿不湿的案例中每次啤酒的销量变好的时候尿不湿的销量也变好,当我们看到这两个产品的销量时,这种规律性也可以被称为异常变动数据。

表2.2 某公司1月数据

既然异常数据分析是从众多的数据中找出规律和不同,那这件事情是不是人人可为,把数据拿过来看就好了?答案是否定的,这里涉及对数据敏感度的问题,什么是数据敏感度呢?数据敏感度可以类比一个人对音乐的感觉,有些人乐感好,什么歌一学就会唱,有些人乐感不好,学唱歌很困难。数据敏感度是一个人对数据的感觉,有些人对数据敏感度高,有些人对数据敏感度低。

任何人盯着表2.2一直看都会无所适从,其实这里也有替代的方案,那就是图表。图2.6显示了指标A的取值分布。

图2.6 指标A的取值分布

很容易看出1月7日、1月14日、1月19日、1月26日是异常还是随机波动?判断的依据一方面来自于对数据的敏感度,依照此项指标的历史波动范围,1月19日的波动远超历史波动范围了。另一方面,更深一层次地使用六西格玛理论,计算这项指标历史正常波动均值μ和方差σ,如果当天的数据波动超过了μ±3σ,即可视当天数值为异常数值。

下面介绍一个统计学工具:控制图与控制线。控制图就是对生产过程的关键质量特性值进行测定、记录、评估并监测过程是否处于控制状态的一种图形方法。根据假设检验的原理构造一种图,用于监测生产过程是否处于控制状态。它是统计质量管理的一种重要手段和工具。

控制图上有三条平行于横轴的直线:中心线、上控制线和下控制线,并有按时间顺序抽取的样本统计量数值的描点序列。中心线、上控制线和下控制线统称为控制线,通常控制界限设定在±3标准差的位置。中心线是所控制的统计量的平均值,上下控制界限与中心线相距数倍标准差。若控制图中的描点落在上控制线和下控制线之外或描点在上控制线和下控制线之间的排列不随机,则表明过程异常,如图2.7所示。

图2.7 控制图示意

提出疑问与发现问题和解决问题是极其重要的。对数据敏感的人,都具有善于提问题的能力,众所周知,提出一个好的问题,就意味着问题解决了一半。提问题的技巧高,可以发挥人的想象力。相反,有些问题提出来,反而挫伤了我们的想象力。

常规的提问包括:为什么(Why);做什么(What);何人做(Who);何时(When);何地(Where);如何(How);多少(How much)。

如果提问题中常有“假如……”“如果……”“是否……”这样的虚构,就是一种设问,设问需要更高的想象力。

对数据不敏感,看不出毛病是与平时不善于提问有密切关系的。对一个问题追根刨底,有可能发现新的知识和新的疑问。阻碍提问的因素,一是怕提问多,被别人看成什么也不懂;二是随着年龄和知识的增长,提问欲望渐渐淡薄。如果提问得不到答复和鼓励,反而遭人讥讽,结果在人的潜意识中就形成了这种看法:提问多、挑毛病是扰乱别人的行为,最好紧闭嘴唇,不看、不闻、不问,但是这恰恰阻碍了人的创造性的发挥。

2.5 数据质量

一般而言,可以把质量数据分析划分为6个阶段:

第1个阶段是只依靠经验,不考虑数据。很多发展还不错的中小企业实际上并不依赖数据,主要依靠人员的经验来处理生产中遇到的各种问题。这些中小企业往往很难扩大他们的市场,尤其是一旦资深员工退休或者辞职后,企业的质量往往出现大幅度的回撤。

第2个阶段是单看数字。正如0.2节中看到的情书例子,单看数字并不能够看清楚事情的本质,而如果解释数字不恰当的话,数字往往还会误导管理人员。

第3个阶段是开始整合数据,使用图表来解释数据。相比于数字,大部分人对图形更加敏感,如果使用合适的图表来解释数据,通常更能解释问题的本质。大部分企业能做到第3个阶段就已经很不错了,但更进一步的是第4个阶段。

第4个阶段是加入统计调查的数据,采用描述性的统计量来刻画数据。一个具体的例子是在工厂中主动去调查测量生产线中的良品率、停机率、产出比例等数据,这些数据只是用来描述生产过程的好与坏。

第5个阶段是通过具体取样数据,例如,如果遇到了若干个不良品,主动去测量不良品中的具体质量和特性,而不是通过计数的方式统计良品率,这样采样得到的数据相比于做加法的统计调查数据包含更多的信息量。

第6个阶段是利用统计推断,使用置信区间等统计方法来量化质量的好坏。通过统计预测的方法来实现质量的控制和预防不良品的出现等。大部分企业还没有到达第6阶段的层次。

在小数据时代,研究人员最困扰的问题往往是缺乏数据。但随着传感器、收集数据方法的进步,大量的测量数据自动地被计算机记录下来,如何保证这些数据的质量,主要有以下几个维度:

1)完整性(Completeness)。完整性用于度量哪些数据丢失了或者哪些数据不可用。

2)规范性(Conformity)。规范性用于度量哪些数据未按统一格式存储。

3)一致性(Consistency)。一致性用于度量哪些数据的值在信息含义上是冲突的。

4)准确性(Accuracy)。准确性用于度量哪些数据和信息是不正确的,或者数据是超期的。

5)唯一性(Uniqueness)。唯一性用于度量哪些数据是重复数据或者数据的哪些属性是重复的。

6)关联性(Integration)。关联性用于度量哪些关联的数据缺失或者未建立索引。

2.6 理解数据要注意的问题

不要把分析质量建立在数据丰富的基础上,实际工作中将会发现:

1)数据永远不够。

2)质量永远太差。

3)需求永远很急。

4)假设永远很多。

想办法利用手头数据,结合业务场景才是有效的办法。

2.6.1 不要对完美数据的盲目执着

当要做一个数据分析的时候,人们常常说:“你怎么没有这个数据?你怎么没有那个数据?你要是有XXX数据就好了”。这就是对完美数据的盲目执着,这不是说我们不需要努力获得更多数据。而是说,我们必须了解,没有任何实际问题的数据是“完美”的。所有的实际问题都是在“不完美”数据的支撑下完成的。我们必须要习惯于同不完美数据和谐相处,要学会欣赏不完美数据的完美。不要执着于对完美数据的妄想,而要享受不完美数据带来的快乐。数据不完美的另一个原因是特征工程不到位。

2.6.2 小样本数据也能做数据分析

我们知道样本越随机、样本量越大,收集到的数据就越靠谱。但是,有的时候这并不容易做到。

如果没法获得大量样本,就只能通过观察来弥补不完美的数据;如果还无法控制这个数据收集的方式,实验性研究能让我们避免混淆因素的干扰,使统计结果更精确、更稳定。

(1)观察性研究

这个例子叫作“消失的弹孔”,这是在抽样技术里面一个比较著名的例子。在第二次世界大战期间,美军不希望自己的飞机被敌人的战斗机击落,因此,要为飞机披上装甲。但是装甲又会增加飞机的重量,飞机的机动性就会减弱,而且会更耗油。防御过度和防御不足都会带来问题!

所以他们想找到一个最优方案,在飞机的某些部位使用装甲。那么到底是哪些部位呢?军方发现,美军的飞机在欧洲上空与敌机交火后返回基地时,飞机上留有的弹孔分布得并不均匀,机身上的弹孔比引擎上的多。所以军方的结论是,应该把装甲放在弹孔多的机身部位。

最幸运的是,军官们拥有一个统计小组,小组组长叫作Abraham Wald,也就是著名的Wald 检验的创造者。这个倔强的组长完全不同意军官们的方案,他认为需要加装甲的部位不应该是弹孔多的地方,而应该是弹孔少的地方,也就是引擎。后来美军将Wald的建议迅速付诸实施,挽救了众多的美军战机。

这也体现了本书一直在强调的让数据产生价值的理念。打赢战争不能仅靠天时地利人和,如果你被击落的飞机比对方少5%,消耗的油料低5%,补兵给养多5%,付出成本仅为对方的95%,那你就很可能成为胜利方。这个就是数据所产生的价值。

那Wald的高明的地方在什么地方呢?其实他的结论就基于一个理论:返航的飞机并不是能够代表所有飞机的随机样本。这个样本是有偏的,而且我们没有办法把它做到无偏。怎么办呢?

既然这是一个有偏的样本,那么它偏在哪儿呢?为什么会偏呢?理论上来讲,一架飞机飞在空中,它各部分中弹的概率应该大体是均等的,但是能够返航的飞机引擎罩上的弹孔却比其余部位少,那么那些失踪的弹孔去哪儿了?——没错,在那些未能返航的飞机上。这说明什么?说明引擎如果中弹将是致命的,很可能被击中就坠落了,而机身被打得千疮百孔的情况下仍能返回基地。这充分说明了机身可以经受得住打击破坏,而引擎不行。

所以,即使样本是不合理的,我们还是可以利用收集到的不完美的数据通过分析得出正确的决策。其实这种“消失的弹孔”的现象,在现实生活中无处不在,在统计上称其为 “幸存者偏差”。但并不是所有的人都会像Wald一样熟悉它,所以人们经常会凭直觉得到相反的结论。

(2)实验性研究

上面的例子是一个观察性研究,也就是说我们没有办法控制数据采集的方式,只能去观测结果。换句话说,有些数据并不是能够随机得到的。遇到这种情况,在分析的时候就需要想办法去处理这些不完美的数据。

而又有些时候,问题不出在无法随机,而出在预算有限,没条件得到很大的样本量。这在工科领域比较常见,尤其是那种做一次实验需要大型设备、消耗巨大的人力物力财力。这种情况应该怎么办呢?下面来看一个非常浅显的例子。

假设需要研发一种做运动鞋的新材料,看是否比旧的材料更耐磨损。又假设研发成本非常高,只能提供4双样品鞋,因此找来了8个孩子来试穿,4双新材料4双旧材料。读者的第一反应是不是“这个样本量太小了”?

也许有人会将孩子分成两组,4个穿新材料的鞋,4个穿旧材料的鞋,让他们天天穿,穿俩月,然后测量磨损程度。如果磨损程度不一样,如何知道真的是新的材料耐磨损,还是分到新材料的那组孩子恰好比较不爱运动,所以没有经常地用鞋呢?也就是说,“材料”这个因素很可能与这个“孩子的活跃程度”有关。这就是样本太小所导致的潜在混淆因素,如果样本够大,就基本上不可能这么恰好了。

那么在样本容量无法扩大的前提下,有没有什么办法来消除掉这个混淆因素呢?我们可以给每一个孩子选一只脚穿新材料的鞋,另一只脚穿旧材料的鞋,这样每一组新旧材料的对比都是基于同一个孩子的,就不存在他喜不喜欢运动的问题了。这在统计上叫作“完全随机区组设计”。

这个例子和上一个“消失的弹孔”案例之间的区别在于:在这个例子中,我们其实是有办法去设计整个实验,去控制收集数据的方式的,所以它不再是观察性研究,而是实验性研究。

在遇到这种问题的时候,可以从设计实验的阶段开始,在给定的预算条件下,看看怎么样得到的数据不会存在或者尽可能少地存在混淆因素,这是我们首要考虑的问题。