4. 数据质量诊断与清洗实战

在COD与氨氮的趋势分析和关联分析中,数据质量决定了结论的可信度。如果原始监测序列中存在缺失、异常、重复或量纲不一致的问题,后续的相关系数、趋势斜率乃至超标判定都可能被严重扭曲。本节围绕四类典型问题——缺失值识别、异常值判定、重复记录处理、量纲统一——展开可操作的清洗流程,并强调清洗过程必须留下可追溯的记录,使每一步处理都能被复核和解释。

一、先做数据体检:缺失值识别

缺失值识别不是简单地数空单元格。实际监测数据中,缺失常以多种形式出现:空值、空字符串、占位符(如“-999”“N/A”“--”)、时间戳存在但指标为空、以及采样间隔断裂。建议先统一将占位符替换为标准空值,再按时间序列检查连续性。例如某污水厂COD小时序列,若相邻两条记录时间差超过1.5倍正常采样间隔,就应标记为“时间断档”,而不是当作普通缺失。

识别后要区分缺失类型:随机缺失(如仪器偶发通信失败)与系统性缺失(如某台在线仪连续停机数小时)。前者可用插值谨慎填补,后者若直接插值会掩盖真实工况,应保留缺失标记并在分析时排除。一个实用做法是统计每个指标的缺失率与最长连续缺失长度,缺失率超过10%或连续缺失超过6个采样点的区段,单独列出待人工确认。

二、异常值判定:结合物理边界与统计规则

异常值判定应“先物理、后统计”。物理边界来自指标本身的合理范围:COD通常为非负值,生活污水进水COD多在100~800 mg/L量级,氨氮多在10~80 mg/L量级(示例假设,实际应按本厂历史与排放标准设定)。出现负值、数量级明显偏离(如COD=15000 mg/L而同期无事故记录)时,先标记为可疑,再核查是否为量纲错误或录入错误。

统计规则常用箱线图法(IQR)和3σ法。以某段COD序列为例,计算得Q1=210、Q3=340,IQR=130,则上界为Q3+1.5×IQR=535,下界为Q1−1.5×IQR=15。超出该范围的记录标记为统计异常。但要注意,水质数据常含真实的高浓度冲击,统计异常不等于错误,必须结合工艺事件(如暴雨、偷排、检修)判断。建议对每个异常点记录“判定依据+处置结论”,而不是一律删除。

COD与氨氮数据清洗处理链与追溯记录 原始监测序列 COD / 氨氮 时间戳 + 数值 缺失值识别 占位符→空值 异常值判定 物理边界 + IQR 重复记录处理 同时间戳去重 量纲统一 mg/L 统一换算 清洗后数据集 统一量纲 标记保留 清洗追溯记录(示例) 记录号:C-2024-0412-03 字段:COD 问题:值=15000,超上界 判定:量纲疑似错录 处置:按原始单据修正 操作人:张工 时间:04-12 09:20 复核:李工 已确认 影响行数:1 原始值保留:是 原则:先物理边界后统计规则;异常不直接删除,先标记再核查;每次修改保留原始值与处置依据,保证可追溯。 量纲统一:COD、氨氮统一为 mg/L;若原始为 μg/L 或 g/L,按 ×0.001 或 ×1000 换算并记录换算系数。

三、重复记录处理:按时间戳与来源去重

重复记录常见于多源数据合并场景,例如在线仪数据与手工化验数据同时导入,或同一文件被重复追加。处理时先定义“重复”的判定键:通常以“监测点编号+指标+采样时间”为联合主键。若同一主键下出现多条记录,需比较数值与来源,保留优先级更高的来源(一般在线数据用于趋势、手工数据用于校准),并记录被舍弃记录的原因。

需要警惕的是“伪重复”:同一时间戳但数值差异较大,可能是一次复测或仪器重传,不能简单取平均。建议保留全部原始记录,另建一张“清洗后主表”,用记录号关联,这样既保证主表唯一,又不丢失审计线索。

四、量纲统一:换算系数必须显式记录

COD与氨氮的常用单位是mg/L,但现场数据可能出现μg/L、g/L甚至ppm。量纲不统一会让关联分析彻底失真——一个以μg/L记录的氨氮序列与mg/L的COD序列做相关,数值量级相差千倍,相关系数毫无意义。清洗时应建立单位字典,对每个字段声明原始单位与目标单位,换算时保留换算系数和换算前后数值。例如原始氨氮为0.025 g/L,换算为25 mg/L,系数1000,需在记录中写明。

五、形成可追溯的清洗记录

可追溯的核心是“每一处改动都有据可查”。建议清洗记录至少包含:记录号、字段名、原始值、问题类型、判定依据、处置方式、处置后值、操作人、操作时间、复核人。对于删除或修正,原始值不得覆盖,应另存于历史表或备注字段。这样在后续趋势分析出现异常拐点时,可以快速回溯到某次清洗操作,判断是数据问题还是工艺变化。

清洗不是一次性动作。建议在每次分析前运行一遍质量检查脚本,输出缺失率、异常数、重复数、单位一致性四项指标,形成数据质量快照,与清洗记录一并归档。

完成上述四类处理后,COD与氨氮序列才具备进入趋势与关联分析的基础条件。需要强调的是,清洗的目标不是让数据“看起来干净”,而是让每一个保留和修改都经得起复核。异常值被标记而非武断删除、重复记录被关联而非覆盖、量纲换算被显式记录,这些做法共同构成了数据可靠性的保障链条。