3. 实验数据质量评估体系

实验数据清洗不能凭感觉“看着差不多就动手”。在写任何清洗脚本之前,必须先建立一套可量化、可复现的质量评估体系,用它回答三个问题:数据到底哪里有问题、问题有多严重、清洗后是否真的变好了。本节围绕五个核心维度——完整性、一致性、准确性、时效性、唯一性——给出定义、指标计算方式,并说明如何把指标汇总成一份可交付的质量报告。

一、五个维度的定义与判定口径

完整性(Completeness)关注“该有的值有没有”。它分两个层次:记录级完整性,即应采集的样本是否都入库;字段级完整性,即某字段的非空比例。实验场景中,传感器掉线会造成整段记录缺失,而人工录入漏填只会造成单字段为空,两者要分开统计。

一致性(Consistency)关注“同一事实在不同地方是否说得一样”。典型表现有:单位不统一(温度同时出现 ℃ 与 K)、编码不统一(“男/男/M”混用)、跨字段逻辑冲突(结束时间早于开始时间)、跨表引用对不上(样本表中出现的样本编号在测量表中不存在)。

准确性(Accuracy)关注“值是否接近真值”。真值往往不可得,因此工程上常用三类替代判据:一是量程与物理约束(pH 落在 0~14 之外必为异常);二是统计离群(如 3σ 或 IQR 准则);三是与参考方法或标准品的偏差(如标准物质测量值相对标准值的相对误差)。

时效性(Timeliness)关注“数据是否在需要它的时间点可用、可用时是否仍然有效”。它包含采集时延(事件发生到入库的时间差)和数据新鲜度(当前时刻与最近一次更新时间的间隔)。对在线监测实验,时效性直接决定数据能否用于实时控制。

唯一性(Uniqueness)关注“同一实体是否被重复记录”。重复可能来自重复上传、多次同步或人工二次录入。判定重复需要先定义业务主键,例如“实验编号 + 样本编号 + 测量时间 + 指标名”构成一条唯一记录。

实验数据质量五维评估与报告生成链路 原始实验数据 样本表 / 测量表 / 日志 五维质量评估 完整性 非空率 = 非空数/总数 记录覆盖率 缺失模式:整段/单字段 一致性 单位/编码统一率 跨字段逻辑冲突数 外键引用命中率 准确性 量程越界率 离群点比例(3σ/IQR) 相对标准误差 时效性 采集时延 = 入库-发生 数据新鲜度 超时记录占比 唯一性 重复率 = 重复数/总数 主键冲突数 近似重复(容差匹配) 加权综合 Q = Σ wᵢ · sᵢ 权重按业务定 阈值分级:优/良/差 质量报告生成 指标汇总表 各维度得分+权重 问题明细清单 定位到记录/字段 结论与建议 是否放行/需重采 反馈:定位问题→清洗→复评

二、质量指标的计算方法

每个维度都要落到一个可计算的比率或计数上。下面给出常用公式,其中 N 为记录总数,n 为满足条件的记录数。

  • 完整性得分:字段非空率 = 该字段非空记录数 / N;记录覆盖率 = 实际入库记录数 / 应采集记录数。若某字段允许为空(如备注),需在配置中显式声明为“可空”,否则会误判。
  • 一致性得分:单位统一率 = 符合标准单位的记录数 / N;逻辑冲突率 = 违反跨字段规则的记录数 / N;外键命中率 = 能在关联表中找到对应主键的记录数 / N。
  • 准确性得分:量程越界率 = 超出物理量程的记录数 / N;离群率 = 被 3σ 或 IQR 判为离群的记录数 / N;相对误差 = |测量值 − 参考值| / 参考值,适用于有标准品的场景。
  • 时效性得分:平均采集时延 = Σ(入库时间 − 事件时间) / N;超时率 = 时延超过阈值的记录数 / N;新鲜度 = 当前时间 − 最近更新时间。
  • 唯一性得分:重复率 = 重复记录数 / N;主键冲突数 = 按业务主键分组后组内记录数大于 1 的组数。

得到各维度得分后,用加权公式汇总:Q = w₁·S完整性 + w₂·S一致性 + w₃·S准确性 + w₄·S时效性 + w₅·S唯一性,权重之和为 1。权重不是固定的,例如离线实验可降低时效性权重,而在线监测实验应提高它。建议同时保留各维度原始得分,避免加权后掩盖某一维度的严重缺陷。

三、质量报告生成方法

质量报告不是把指标堆在一起,而是要让读者快速判断“这批数据能不能用”。一份可执行的质量报告通常包含四部分:

  1. 指标汇总表:列出五个维度的得分、权重、加权贡献和等级(如 ≥0.95 优、0.85~0.95 良、<0.85 差)。
  2. 问题明细清单:每条问题记录维度、字段、记录主键、问题描述和示例值,便于定位到具体行。
  3. 分布与趋势:按批次、设备或时间给出指标变化,识别是偶发还是系统性劣化。
  4. 结论与建议:给出是否放行、需重采哪些样本、优先修复哪个维度。

下面是一份可直接参考的报告片段示例(数值为教学示例,非实测结果):

质量报告(批次:EXP-2024-0312)
评估时间:2024-03-12 18:00
记录总数:12,480

维度        得分     权重    加权贡献   等级
完整性      0.972    0.25    0.2430     优
一致性      0.918    0.20    0.1836     良
准确性      0.884    0.25    0.2210     良
时效性      0.760    0.15    0.1140     差
唯一性      0.995    0.15    0.1493     优
综合得分 Q = 0.9109(良)

主要问题:
1. 时效性:设备 D-07 平均采集时延 42 min,超时率 18.6%,疑似网关缓存积压。
2. 准确性:温度字段越界 37 条(值 > 120 ℃),集中在 14:20—14:35。
3. 一致性:pH 字段出现 3 种单位写法,需统一为无量纲标准值。

建议:优先排查 D-07 网关;温度越界记录标记为可疑并复核原始日志;
      单位统一后重新计算一致性得分。
报告中的阈值、权重和等级划分应写入配置文件,而不是硬编码在脚本里。这样同一套评估逻辑可以复用到不同实验项目,只需替换配置即可。

四、从评估到清洗的闭环

质量评估的价值在于驱动清洗决策。实践中建议按“评估 → 定位 → 清洗 → 复评”形成闭环:先用五维指标找出最严重的短板,再针对该维度选择清洗策略(如缺失值插补、单位换算、离群值修正、去重),清洗后重新计算同一套指标,用前后对比证明清洗有效。如果复评后综合得分没有提升,说明清洗策略选错了,需要回到问题明细重新分析。

需要特别注意的是,准确性维度中的离群值不能一律删除。实验中的真实突变可能正是研究对象,因此离群点应先标记为“可疑”,结合实验日志和重复测量判断,再决定保留、修正还是剔除。质量报告应如实记录这一判断过程,使数据清洗结果可追溯、可复核。