数据分析师必修课(1)——数据质量评估

数据分析师必修课(1)——数据质量评估

前言/专栏开篇

关注我的朋友可能知道,笔者是半路出家转行数据分析的,从2016年自学数据分析,到2017年中顺利成为一名数据分析师,再到2017年底被破格提拔、升职加薪,算来也近两年的时间了。这两年里,笔者参加的各类数据分析培训可算不少,看过的相关书籍也很多。但是笔者发现,有一个在实际工作中十分重要的领域却无人提及,大家所说寥寥,那就是数据质量评估,或者叫数据质量分析。所以这一次,我就来聊一聊这件事。

不仅聊这件事,这篇也是我的知乎专栏《数据分析师必修课》开篇文章,之后我会陆续分享自己的思考,和大家一起探讨数据分析师该有的知识、技能和素养。希望能帮助大家梳理工作中容易遗漏但很重要的内容,帮助大家绕开一些常见但不容易爬出来的坑。由于能力所限,我不能保证我输出的信息都一定是对的,但我会尽量保证我的观点都是独特的、是很少有人提及的,在这里大家应该不会看到已经在网上被大家讲烂掉的、重复无趣的内容。希望大家喜欢,多多捧场。也希望有兴趣的伙伴一同参与进来,共同探讨、共同成长。

需要说明一下,本文是笔者根据自身的知识积累,参考了一些论文和书籍,再结合实际工作中的具体实践整理归纳而来,并非全部原创。由于笔者自身的知识和能力有限,文章内容可能会有不足和错误,仅供参考。欢迎大家参与讨论,更欢迎各位大牛批评指正。


文章目录/结构

1 什么是数据质量评估

一个不严谨的定义是,将数据质量评估程序应用于数据集并最终获取评价对象质量状态。直白的说,就是依据一个相对完整的评估框架,按照一套确定的步骤和流程,从整体上考量某个或某些数据集对特定业务应用的满足程度,能很好满足业务应用的数据集我们称其质量较好,反之则质量较差。


2 为什么要进行数据质量评估

很多刚入门的数据分析师,拿到数据后会立刻开始对数据进行各种探查、统计分析等,企图能立即发现数据背后隐藏的信息和知识。然而忙活了好一阵才颓然发现,并不能提炼出太多有价值的信息,白白浪费了大量的时间和精力。造成这一情况的一个重要因素就是忽视了对数据质量的客观评估。

笔者认为有几个观点大家需要牢记:

1. 不是所有的数据都有价值。 在实际工作中数据分析一定都是为实际业务服务的,只有紧密围绕业务需求的分析才是有意义的,因此,只有和实际业务有较强相关性的数据集才是有价值的,不相关的数据,不管多么丰富,对于当下的工作都是没有意义的。

2. 数据质量的好坏直接影响实际的业务结果。 通常我们进行数据分析、挖掘的目的是企图发现数据中隐藏的知识和信息,从而对实际业务或产品进行优化。如果数据集本身质量不佳,自然很难得出有用的结论,甚至可能得到错误的结果。所以,进行科学、客观的数据质量评估是非常必要且十分重要的,笔者认为这是拿到数据后第一件要做的事。

进行数据质量分析有几个好处,首先可以节约大量试错的时间,对于质量很差的数据集,我们没有必要花费太多的时间和精力。其次可以降低得出错误结论的概率,如果我们能够及时发现数据中存在的错误和失真,就能够避免因为数据本身的问题而让我们得出错误的结论。最后,可以缩短数据反馈流程,更加及时的将数据收集过程存在的问题反馈给数据生产部门,提高协作效率。


3 如何进行质量评估

这一部分将是本文的核心内容,对刚接触数据分析工作的人有很强的指导作用。我将从数据质量评估框架、常用方法、一般步骤三个方面展开,其中,数据质量评估框架是重点中的重点

3.1 质量评估框架

数据质量是一个多维度的概念,可能涉及数据产品及其生产服务过程的多个方面,其本身不可测度。一般来说,对数据质量的认识通过将其分解为多个质量维度,并逐个识别实现。

当前普遍的观点认为,数据质量要素受行业领域、 数据类型和应用目的等因素的影响极大,不存在面向所有领域和资源类型的普适性数据质量框架。但针对一个具体行业背景下的特定数据类型和业务目标,建立一组质量维度和指标体系是可行的。

笔者参考相关论文,从语法、语义和语义三个方面考虑,将数据质量分为形式质量、内容质量和效用质量三个基本种类。其中形式质量主要考量数据集在结构和表达形式上是否能很好的匹配业务需求,以及是否易于理解和获得。内容质量主要考量数据集的具体内容和取值是否和实际业务相一致。效用质量主要考察数据集在业务特征以及时间维度上具有较高的关联性。这种分类方法并不是严格的、唯一的,只是为了便于理解。

对于互联网以及金融行业的大多数业务应用,将常见的数据质量维度整理成如下的框架:

数据质量框架的8个常见维度

逐一来解释一下每个维度的具体概念和常用指标:

完整性: 这是笔者自己定义的一个概念,这和数据库中完整性约束的概念不同,这里的完整性指的是数据集对具体业务对象的覆盖程度,一般可以从字段和记录两个方面来描述。数据完整性的常见指标有:

  • 用户覆盖度:比如某业务的目标用户600万,现有数据集只覆盖了其中350万,则用户覆盖度为350 ÷ 600 * 100% = 58.3%
  • 业务覆盖度
  • 产品覆盖度

可理解性: 可理解性指标用来表述数据集是否能清晰的反应业务逻辑,字段和取值的具体意义是否明确。常用的可理解性指标有:

  • 存在数据字典
  • 数据字典语义明确
  • 字段取值是否和业务逻辑一致

一致性: 用来描述数据在不同维度的连贯性,包括数据集之间的横向连贯性和时间维度的纵向连贯性。一致性并不意味着数值上的绝对相同,而是数据收集、处理的方法和标准的一致。常见的一致性指标有:

  • ID重合度:在相关数据集中是否存在一个全局的ID,或者不同数据集之间的关联ID是否能一一对应;
  • 属性一致:不同数据集之间,同一个属性的字段名称、取值范围是否一致;
  • 取值一致:不同数据集之间,同个字段的取值范围是否一致、相同情况下的具体取值是否一致;
  • 采集方法一致:数据是否使用相同的工具和方法进行采集;
  • 转化步骤一致:数据的转化过程是否采用相同的方法和工具;

可获得性: 用来描述实际业务需要的数据获取的难易程度,包括采集、清理、转化等多个环节。常用指标有:

  • 易于采集:是否易于采集,采集过程是否简单直接;
  • 易于处理:数据处理过程计算复杂度是否可接受;
  • 合适的存储方式:数据存储结构是否合适,是否便于二次使用;

准确性:数据集是否能够精准无误的反应真是业务情况,准确性是数据质量的重要组成部分。常见指标有:

  • 缺失值占比
  • 错误值占比
  • 异常值占比
  • 抽样偏差: 因统计抽样而带来的样本特征和总体特征之间的偏差。
  • 数据噪声: 数据流通过程中因数据转化而产生的信息损失,如关键信息加密、四舍五入等。

可靠性: 数据集是否值得信赖,包括数据采集、数据处理过程是否可靠等。常见指标有:

  • 采集方法正确:有时候对数据的不同定义会导致采集方法的不同,比如页面曝光事件的定义,如果用户刷新了页面算不算第二次曝光?这要根据不同情况来定义,不同的定义其数据采集方式会不相同。
  • 上报过程可靠
  • 处理方法正确
  • 数据处理全流程通过测试

相关性: 是指数据集中包含的属性是否能很好的描述业务目标,是否能清晰的解答业务问题。第一节我们说到,我们对数据质量的定义是看数据集是否能很好的满足业务需求,因此可以说相关性是数据质量的核心维度。相关性的常用指标主要就是数据字段相关度。

时效性: 时效性可以理解为时间维度的数据相关性,即业务需求的时间范围和数据集表示的时间范围之间的关联程度。比如我们需要分析今年第一季度的某品类销售情况,但数据集是去年第二季度的,这种情况就是极端的时效性差。时效性的常见指标有:

  • 时序区间覆盖度
  • 数据更新频率

以上就是对数据质量维度的详细解读。需要注意的是,在实际做质量评估的时候,不一定对每个维度每个指标都进行分析,可以根据实际情况酌情选择。

3.2 质量评估一般方法

质量评估方法,即采用何种方式对数据质量进行评估,如何评定和刻画质量水平。数据质量评价方法主要分为定性和定量方法,以及两者结合的综合评价法。定性方法主要依靠评判者的主观判断。定量方法则提供了一个系统、客观的数量分析方法,结果较为直观、具体。这一部分的内容比较容易理解,这里不展开过多的解释,仅做简单介绍。

3.2.1 定性法

定性评价方法一般基于一定的评价准则与要求,根据评价的目的和用户对象的需求,从定性的角度来对基础科学数据资源进行描述与评价。

定性评价标准因业务领域、能力水平和实际任务等差别而因人而异,无法强求一致。 定性方法的主体需要对领域背景有较深的了解,一般应由领域专家或专业人员完成

定性法一般包括:第三方评测法、用户反馈法,专家评议法等。

3.2.2 定量法

定量评价方法是指按照数量分析方法,从客观量化角度对数据资源进行的优选与评价。定量法一般包括:统计分析法、内容评分法等。

3.2.3 综合评价法

综合方法将定性和定量两种方法有机地集合起来,从两个角度对数据资源质量进行评价。

常见的综合评价法包括:层次分析法、缺陷扣分法等。

3.3 评估流程

1. 需求分析

对具体业务数据的数据质量评价是以业务需求为中心进行的。数据资源不同于实体产品,具有用途个性化、多样化、不稳定等特点。因此,必须首先了解具体业务针对特定数据资源的需求特征才能建立针对性的评 价指标体系。

2.确定评价对象及范围

确定当前评估工作应用的数据集的范围和边界,明确数据集在属性、数量、时间等维度的具体界限。需要说明的是,评价对象既可以是数据项也可以是数据集,但一定是一个确定的静态的集合。

3.选取质量维度及评价指标

数据质量维度是进行质量评价的具体质量反映,如正确性、 准确性等。它是控制和评价数据质量的主要内容。因此,首先要依据具体业务需求选择适当的数据质量维度和评价指标。另外,要选取可测、可用的质量维度作为评价指标准则项,在不同的数据类型和不同的数据生产阶段, 同一质量维度有不同的具体含义和内容,应该根据实际需要和生命阶段确定质量维度。

在此阶段要注意指标之间避免冲突,同时也要注意新增评价指标的层次、 权重问题,以及与其它同层次指标的冲突问题。

4.确定质量测度及其评价方法

数据质量评价在确定其具体维度和指标对象后,应该根据每个评价对象的特点,确定其 测度及实现方法。对于不同的评价对象一般是存在不同的测度的,以及需要不同的实现方法支持,所以应该根据质量对象的特点确定其测度和实现方法。 常用定性方法和定量方法。

5.质量评估

就是根据前面四步确定的质量对象、 质量范围、 测量及其实现方法实现质量评测的活动过程。 评价对象的质量应当由多个质量维度的评测来反映,单个数据质量测量是不能充分、 客观评价由某一数据质量范围所限定的信息的质量状况,也不能为数据集的所有可能的应用提供全面的参考,多个质量维度的组合能提供更加丰富的信息。

6.结果分析并报告

评测后要对评测结果进行分析:对评价目标与结果进行对比分析,确定是否达到评价指标;对评价的方案的有效性进行分析,确认是不是合适等。

之后,根据评价结果确定对象的质量评价,如需要,可根据评价结果鉴定量级别。最终的质量评价(或评级)将说明数据质量是否能满足实际业务需求。

最后应将质量评价结果和数据质量评价过程汇总并报告。在完整的数据质量评价结果和报告中,应该包括全部上述内容。


4 何时需要进行数据质量评估

一般来说,有几种情况我们需要进行比较完整的数据质量分析:

其一是我们产生了全新的业务需求,我们需要对现有的数据集进行一次质量评估,看看是否足以支持新的业务需求。

其二是当我们的数据采集、清理、转化、存储等任一个环节产生了重大的技术变更(比如重构、使用新的工具)的时候,我们要对变更后产生的新的数据集进行质量评估。

其三是当我们从一个新的数据来源获取了全新的数据,并期望将它应用在一个具体的业务中的时候。


5 评估之后做什么

完成质量评估后,我们会对数据质量有一个清晰的且量化的认识,同时也会对数据采集、清理、转化、存储等各环节存在的问题有所了解。对于一些问题,我们需要及时的反馈给数据生产部门,比如数据采集方法错误、错误值占比过高、用户覆盖度太低等。还有一些错误是分析师可自行消化的,比如不同数据集之间相同属性的取值范围不一致等,可以通过一些技术手段来解决,因此可以根据数据质量评估结果指导后续的ETL工作。


6 其他要点整理

  1. 质量评估紧紧围绕业务需求展开,脱离业务需求谈数据质量是没有意义的。
  2. 不是每个质量维度都需要考察,根据需要酌情选择。
  3. 不是对所有的数据集都需要进行质量分析,如果没有新的业务需求,且现有数据的全流程已经经过长时间验证,可不必进行质量分析。
  4. 数据质量评估往往不是鼓励的一个环节,通常和EDA(探索性数据分析)过程重叠。但两者的关注重点不一样,EDA关注的是数据背后隐藏的规律或模式;质量评估关注的重点是观察数据集和业务需求之间的关联程度。
  5. 本文列出的数据质量维度并不能包含所有方面,读者请根据自己的实际需要增删。
  6. 数据质量评估可能不单单是数据分析师自己的工作,通常要和数据开发、产品开发、测试等部门合作完成。

7 一点福利

作为一个理科僧,笔者以前写作文从来没及格过,今天写这样长一篇文章,真真要了老命了!我用生命整理来的文章,如果对你有用,请不要吝惜,点个赞吧!点赞后私信,可获得笔者整理的数据质量评估报告模板哟~~

PS:未经授权严禁转载!极度厌恶抄袭行为!


笔者其他相关文章及内容有:

编辑于 2018-03-12 15:56