3. 数据质量检查与预处理
温室环境监测系统通常以固定间隔(如5分钟、10分钟或30分钟)采集空气温度、相对湿度、光照度、CO₂浓度、基质含水量等参数。传感器漂移、网关掉线、断电重启、人工校准以及时钟不同步,都会让原始数据在进入趋势分析之前就带有缺陷。趋势分析对数据缺陷非常敏感:一段缺失可能被插值成虚假的平稳段,一个未处理的异常尖峰可能主导回归斜率,重复记录会让均值被同一时刻重复加权,时间戳错位则会让温度与光照的因果关系整体偏移。因此,本节把数据质量检查与预处理作为趋势分析的前置工序,按“先诊断、再处理、后验证”的顺序展开。
一、先做质量诊断,再决定处理策略
拿到一份温室数据表后,不要急于删除或填补。先做四项基本统计:记录总数与时间跨度、每个字段的缺失率、重复时间戳数量、以及各参数的极值与分位数。以某番茄温室2024年3月1日至3月31日、10分钟间隔的数据为例(以下数值为教学示例,非实测):理论记录数应为 31×24×6=4464 条,实际得到 4310 条,说明存在约 3.4% 的缺失;时间戳重复 18 条;空气温度最小值 −12.6 ℃、最大值 61.3 ℃,明显超出温室合理范围,提示存在异常值。这些诊断结果决定了后续处理的力度:缺失率低于 5% 且为随机缺失时,短间隔线性插值通常可接受;若缺失成段出现(如连续数小时),则应标记为无效段而非强行填补。
二、缺失值的识别与处理
缺失在数据中可能表现为空单元格、空字符串、NaN,也可能被采集系统写成 -999、-99 之类的哨兵值。第一步是把这些哨兵值统一转换为缺失标记,避免它们参与计算。处理方式按缺失形态区分:
- 短时随机缺失(如单个10分钟点丢失):对温度、湿度等缓变参数采用时间加权线性插值,即按相邻有效点的时间距离分配权重,而不是简单取算术平均。
- 成段缺失(如连续2小时以上):不插值,保留为空并在分析中排除该时段,或仅做“缺失段”标注,防止插值制造出并不存在的趋势。
- 整列缺失或长期失效:该参数不参与趋势建模,并在报告中说明传感器故障时段。
插值必须带边界条件:只在缺失段两端都有有效观测、且间隔不超过设定阈值(例如不超过3个采样周期)时执行。超过阈值的缺口应保持缺失,这是保证趋势可信度的关键约束。
三、异常值的判定与处置
异常值分两类:物理越界值和统计离群值。物理越界依据量程与生物学合理性判断,例如空气温度合理区间可设为 −5~50 ℃,相对湿度 0~100%,光照度 0~120000 lx,CO₂ 300~2000 ppm。超出区间的值直接判为无效。统计离群值则用稳健方法识别,推荐使用中位数与四分位距(IQR):若某点满足 x < Q1 − 1.5×IQR 或 x > Q3 + 1.5×IQR,标记为疑似异常。对于温度这类具有日周期的参数,更稳妥的做法是先按小时分组再计算 IQR,避免昼夜差异被误判为异常。
判定之后不要一律删除。传感器瞬时跳变(单点尖峰)可用前后有效点的中位数替换;持续偏移(如校准后整体偏高2 ℃)应做偏移修正而非逐点删除;只有无法解释且影响显著的异常段才整段剔除。每次处置都应记录规则、影响记录数和处理时间,形成可追溯的清洗日志。
四、重复记录与时间对齐
重复记录常见于网关重传和断点续传,表现为同一时间戳出现多条记录。处理原则是:时间戳完全相同且数值一致的,保留一条;数值不一致的,优先保留质量标志位更高的记录,若无标志位则取中位数或按采集顺序保留最后一条,并记录冲突。更隐蔽的问题是时间戳“看似不同、实则重复”,例如设备重启后时间回拨,产生同一物理时刻的两个时间戳,这需要结合设备日志或相邻记录的单调性检查来识别。
时间对齐解决的是多传感器采样时刻不一致的问题。温度与光照可能分别在不同秒级时刻采样,若直接按行合并,会造成分钟级错位。标准做法是统一重采样到固定频率(如10分钟),对瞬时量(光照、CO₂)取区间均值,对累积量(如灌溉量)取区间求和,对状态量(如通风开关)取区间内占优状态。重采样后再检查时间轴是否严格等间隔、是否存在重复索引,确保后续趋势分析使用同一时间基准。
五、处理后的验证与可复现性
清洗完成后必须做回检,而不是直接进入建模。建议核对四项:时间轴是否严格等间隔且无重复索引;各参数缺失率是否与诊断阶段一致或按预期下降;异常值处置后极值是否回到合理区间;重采样前后日均值、日较差等关键统计量是否发生不合理跳变。若某参数在清洗后日较差明显缩小,往往说明插值过度或异常剔除过猛,需要回退调整阈值。
可复现性同样重要。把清洗规则写成可执行脚本或配置,例如缺失阈值设为3个采样周期、IQR系数取1.5、温度合理区间设为 −5~50 ℃,并保留原始数据副本与清洗日志。这样当分析结论受到质疑时,可以逐条回溯每个被修改的记录,判断问题出在数据还是模型。对于温室趋势分析而言,一份记录完整、时间对齐、异常可解释的数据集,比任何复杂算法都更能保证结论的可靠性。