
4.5 数据质量诊断
前面章节介绍的主要是数据资产,本节将介绍在取得数据之后,需要进行的数据探查性分析和数据质量诊断。
4.5.1 数据质量诊断目的
在建模之前需要对数据进行探索和数据质量诊断,主要目的如下。
1. 确保数据提取无误
通常提取数据并非由分析建模师自行完成,而是由数据分析建模师提出数据需求,由数据部门协助完成数据的提取工作。在此过程中,可能出现数据逻辑传达不清、理解不准确或者提取数据有技术性错误(编码错误、串行、串列、截断等)等问题,导致数据有误(操作型错误)。
2. 理解数据逻辑
通过数据探索和质量诊断,可以更准确和深入地理解数据逻辑。对于数据逻辑的获得途径,一方面可以通过数据访谈,从数据拥有方和管理方进行了解;另一方面是获取数据之后自行探索数据,对之前了解的数据逻辑进行验证,或者探索性发现和确认数据逻辑。需要注意的是,通过数据拥有方和管理方获得的数据逻辑未必准确,因此自行对数据做进一步的检查和确认是有必要的。
3. 检查数据质量和可用性
检查和分析数据质量,主要包括数据的正确性、完整性、一致性等,初步理解和判断数据的价值和可用性。
4. 为模型设计提供依据
基于数据质量分析结果,重点确认样本量、好坏样本量是否充足等,判断是否足够支撑建模,为后续建模的样本范围确定提供依据。
4.5.2 数据质量诊断方法
数据质量诊断包括如下内容。
1. 表描述
表描述概括了表的基本信息,包括观测数、变量数、数值型/字符型变量数等,如表4-10所示。
表4-10 数据质量诊断(表描述)

2. 字段描述
字段描述概括了变量的信息,包括缺失值个数、缺失率、取值水平数等,如表4-11所示。
表4-11 数据质量诊断(字段描述)

3. 值描述
值描述概括了取值内容,包括分类型变量的频数统计、数值型变量的分位统计,分别如表4-12、表4-13所示。
表4-12 数据质量诊断(分类型变量值频数统计)

表4-13 数据质量诊断(数值型变量分位统计)

4. 单表键值检查
单表的逻辑主键检查用于确认逻辑主键是否唯一,如表4-14所示。
表4-14 数据质量诊断(单表键检查)

理论上逻辑组合主键应当是唯一的,如果出现了重复或缺失,则需要进一步分析原因,确认数据逻辑,并做出相应处理。
5. 表关联关系检查
对有关联关系的多张表之间的关联关系进行检查,分别计算各种连接运算(join、left join、right join等)的记录行数和键值数,以确认映射关系是1:1、1:m还是m:n,并确认表间关联关系,以及不同表之间交集范围,如表4-15所示。
表4-15 数据质量诊断(表关联关系检查)

确认表间关联关系是数据质量诊断过程中非常重要的一项工作。