1. 科学数据质量问题的整体认知
在科学计算与数据分析中,我们往往把大量精力投入到模型选择和算法调优上,却容易忽略一个更前置的问题:进入模型的数据本身是否可信。科学数据质量问题通常被归纳为三类——缺失、异常与离群值。它们看起来相似,实际含义、成因和处理策略差别很大,混淆三者是初学者最常见的错误之一。
三类问题的定义边界
缺失(Missing)指某个观测单元上本应存在、但实际未记录或记录失败的值。它的本质是“没有值”,在数据表中通常表现为空单元格、NaN、NULL 或特定哨兵值(如 -9999)。缺失关注的是“有没有”。
异常(Anomaly / Error)指数据中存在明显违背物理规律、量纲约定或记录逻辑的值,例如温度传感器记录到 300℃ 的室温、浓度出现负值、时间戳倒序。异常的本质是“值错了”,它往往由设备故障、录入错误、单位混用或传输丢包造成,属于确定性的错误,原则上应当修正或剔除。
离群值(Outlier)则是一个统计概念:相对于整体分布而言显得罕见的观测。离群值不一定是错误——极端天气、罕见事件、真实的天文爆发都可能是离群值,却恰恰是科学上最有价值的信息。离群值关注的是“是否罕见”,而非“是否正确”。
产生根源:沿数据生命周期追溯
把质量问题放回数据生命周期中看,成因会清晰很多。以一次典型的野外气象观测为例:
- 采集阶段:传感器漂移、供电不稳、探头结冰导致读数卡死,产生异常值;设备离线造成整段缺失。
- 传输阶段:无线链路丢包、协议解析错位,造成零星缺失或字段错位型异常。
- 存储阶段:数据库写入失败、编码不一致、哨兵值未统一,形成伪缺失。
- 整合阶段:多源数据单位不统一(℃ 与 K)、时间对齐错误,引入系统性异常。
- 分析阶段:不恰当的筛选条件、错误的连接操作,人为制造缺失或重复。
可以看到,越靠前的环节出问题,影响面越大、修复成本越高。因此质量治理应当“左移”,优先在采集与传输环节设置校验,而不是等到分析阶段再补救。
对科学结论的影响
三类问题对结论的伤害机制不同。缺失会削弱样本量和代表性,若缺失并非随机(例如高污染时段仪器恰好停机),直接删除完整案例会造成选择性偏差,使估计量系统性偏移。异常值会直接污染统计量,一个量纲错误的值就能把均值拉偏数倍。离群值则更微妙:盲目剔除会抹掉真实信号,放任不管又可能主导回归结果。换句话说,缺失与异常主要威胁结论的“正确性”,离群值主要威胁结论的“稳健性”。
以数据生命周期为主线的处理框架
基于上述认识,本课程采用一条贯穿始终的处理主线:发现 → 诊断 → 决策 → 处理 → 验证,并将其嵌入数据生命周期的每个环节。发现阶段依靠描述统计、缺失率统计与可视化;诊断阶段区分“缺失/异常/离群”并追溯成因;决策阶段依据成因与科学目标选择策略;处理阶段执行插补、修正、剔除或保留;验证阶段通过前后对比与敏感性分析确认处理没有引入新偏差。
一个可操作的判断示例
假设某水质监测站连续记录溶解氧(DO),单位为 mg/L,正常范围约 5~12。数据中出现三种情况:某日 14:00 记录为空;某日出现 DO = -3.2;某日出现 DO = 14.8。按前述框架:空值属于缺失,需先判断是设备离线还是传输丢包;-3.2 违背物理下限,属于异常,应标记为无效并追溯传感器校准记录;14.8 虽超出常见范围,但水体过饱和时确实可能出现,属于待核实的离群值,应结合当日光照、藻类活动判断,而非直接删除。这个例子说明,处理动作必须由成因和科学含义决定,而不能只由数值大小决定。