4. 基于统计特征的漂移识别

传感器漂移在早期往往非常微弱,单点读数与真值之间的偏差可能完全淹没在噪声里,靠肉眼看曲线几乎无法判断。统计特征方法的价值在于:它不追问“这一时刻的值对不对”,而是追问“最近一段时间的分布是否发生了系统性改变”。本节围绕三个层层递进的工具展开——滑动窗口的均值/方差分析负责刻画局部分布,Mann-Kendall 趋势检验负责判断单调走向是否显著,变点检测负责定位漂移真正开始的位置。

一、滑动窗口:把“一段数据”压缩成可比较的统计量

滑动窗口的基本做法是设定窗口长度 W 与步进 S,在每个位置上计算窗口内数据的均值、标准差、极差或分位数,形成一条统计量时间序列。窗口长度是核心参数:W 太短,统计量抖动大,容易把噪声当漂移;W 太长,漂移起始点会被严重平滑,滞后明显。工程上常取 W 覆盖数十到数百个采样点,并保证窗口内至少包含一个完整的环境变化周期(如昼夜温湿度循环),否则均值本身就会随环境节律起伏,掩盖漂移。

均值窗口主要捕捉加性漂移(零点偏移),方差窗口主要捕捉乘性漂移或灵敏度退化(响应幅度变化、噪声增大)。实际中更稳妥的做法是同时观察两者:若均值缓慢单向上移而方差基本不变,多为零点漂移;若方差显著增大而均值变化不大,则要怀疑敏感膜老化、接触不良或供电纹波。为消除环境耦合,通常不直接对原始读数做窗口统计,而是对“读数减去同环境条件下的参考值”或“读数与参考模型的残差”做统计,这样窗口均值的变化才更接近漂移本身。

窗口统计量建议与基线期(如投运首周)的同名统计量对比,用差值或标准化偏差(如 z 分数)作为判据,而不是给均值设一个绝对阈值。不同传感器、不同量程的绝对阈值不可通用。

二、Mann-Kendall 趋势检验:判断“是否在单调走”

Mann-Kendall(MK)是一种非参数趋势检验,不要求数据服从正态分布,对异常值也不敏感,非常适合传感器残差这类偏态、含尖峰的数据。其统计量 S 由所有数据对的符号函数求和得到:对序列中每一对 (x_j, x_i)(j > i),若后者大于前者记 +1,小于记 −1,相等记 0,累加即得 S。随后计算方差并标准化为 Z,在给定显著性水平(常用 α = 0.05,对应 |Z| > 1.96)下判断趋势是否显著;Z > 0 表示上升趋势,Z < 0 表示下降趋势。

MK 的实用要点有三。第一,它检验的是“整段序列是否存在单调趋势”,因此应作用在滑动窗口统计量序列或残差序列上,而不是原始高频读数上,否则自相关会严重高估显著性。第二,对存在季节性的数据,应使用季节 MK(Seasonal Kendall)检验,先按季节分组再合并统计量。第三,MK 只能回答“有没有趋势”,不能回答“从哪一点开始”,这正是变点检测要补上的环节。工程上常把 MK 的 Z 值做成滚动输出,当 |Z| 持续超过临界值并稳定若干窗口时,才判定为趋势确立,以抑制偶发波动。

三、变点检测:定位漂移的起始时刻

变点检测把序列视为若干段分布不同的子序列,寻找使“段内差异最小、段间差异最大”的分割点。最基础的是均值变点:对候选分割点 k,计算分割前后两段的均值差,并用两段方差归一化,取统计量最大的 k 作为变点估计。更通用的是累积和(CUSUM)方法:对标准化残差序列构造上下累积和,当累积和越过决策边界 h 时报警,报警时刻回退一个滞后量即为变点近似位置。CUSUM 的优点是递推计算、内存占用小,适合在线运行;参数 k(允许的偏移量)与 h(报警阈值)需按噪声水平标定,常用经验是 k 取 0.5 倍标准差的偏移、h 取 4~5 倍标准差。

此外还有基于似然的 PELT、基于贝叶斯的在线变点检测等,精度更高但计算量更大,适合离线复盘。无论哪种方法,都应把变点检测结果与窗口均值、MK 趋势结论交叉验证:三者同时指向同一时段,才可较有把握地认定漂移起始点;若只有变点报警而均值与趋势均无变化,更可能是环境阶跃或单次干扰,应先排查外部原因。

传感器残差序列 读数 − 环境参考值 滑动窗口统计 窗口 W、步进 S 输出:均值序列 / 方差序列 均值窗口 → 加性漂移 零点偏移、缓慢单向偏移 方差窗口 → 乘性漂移 灵敏度退化、噪声增大 Mann-Kendall 检验 |Z| > 1.96 判趋势显著 变点检测 CUSUM / 均值变点定位 交叉验证:三者是否指向同一时段? 均值偏移 + 趋势显著 + 变点报警 → 认定漂移起始点;仅变点报警 → 先排查环境阶跃或单次干扰 输出:漂移起始点 t₀ 用于后续校正模型分段 输出:漂移类型判定 加性 / 乘性 / 趋势性 示意:残差序列在 t₀ 前后均值发生系统性抬升,窗口均值随之偏移,MK 的 Z 值持续为正,CUSUM 越过边界 t₀ 变点

四、一个可复现的教学示例

假设某温湿度传感器投运后以 1 分钟间隔采样,取 7 天共 10080 个点,用同环境的参考探头构造残差序列。设定窗口 W = 240(4 小时)、步进 S = 60(1 小时),得到约 164 个窗口均值。基线期取前 48 个窗口,计算其均值 μ₀ 与标准差 σ₀;随后对每个窗口计算标准化偏差 z = (μ_w − μ₀) / σ₀。若从第 120 个窗口起 z 连续 6 个窗口超过 2,则触发均值偏移告警。与此同时对残差序列做滚动 MK 检验,若 Z 由接近 0 转为持续大于 1.96,说明趋势确立;再用 CUSUM(k = 0.5σ、h = 5σ)定位报警时刻并回退滞后量,得到变点估计。若三者给出的时间落在同一 4 小时区间内,即可把该区间起点作为漂移起始点 t₀,并据方差是否同步增大判定漂移类型。

上述参数与数值均为教学示例,用于说明计算流程与判读逻辑,不代表任何实际设备的实测结果。实际应用必须用本设备的基线数据重新标定 W、σ₀、k、h 等参数。

五、判读时的常见陷阱

第一,把环境阶跃误判为漂移。空调启停、开窗通风都会造成残差阶跃,若不做环境参考扣除,变点检测会频繁误报。第二,忽略自相关。高频采样序列相邻点高度相关,直接做 MK 或变点检验会虚增显著性,应先降采样或对窗口统计量做检验。第三,窗口长度与漂移速率不匹配。漂移若在数小时内快速发生,长窗口会把变点抹平;若漂移以月计,短窗口则被噪声淹没。第四,只报警不定型。仅给出“有漂移”而不区分加性与乘性,后续校正模型就无从选择。把窗口统计、趋势检验与变点检测组合成一条判读链,并坚持用基线期数据标定参数,才能让统计量真正成为发现漂移起始点的可靠工具。