3. 模型检验诊断的数据准备与探索性分析

随机过程模型的检验与诊断,前提是拿到一份“干净且被理解”的观测数据。若直接对原始序列套用白噪声检验、似然比检验或残差诊断,缺失值、量纲跳变、异常点与趋势项都会污染统计量,使检验结论失真。本节的任务不是做正式检验,而是把观测数据整理成可检验的形态,并用探索性工具形成对数据基本性质的初步判断,为后续的平稳性检验、模型定阶与残差诊断提供依据。

一、观测数据的整理与缺失值处理

随机过程观测通常以等间隔时间序列形式出现,例如某设备每 5 分钟记录一次振动幅值、某接口每分钟统计一次请求数。整理阶段先明确三件事:时间索引是否等间隔、采样间隔是否一致、序列是否存在重复时间戳。对重复时间戳一般取均值或保留最后一条,并在数据说明中记录处理规则,避免后续复现时口径不一致。

缺失值处理要区分缺失机制。若缺失是随机的零星丢点(如传感器偶发丢包),且缺失比例较低(示例中可假设低于 5%),线性插值或前向填充即可满足探索性分析需要;若缺失成段出现,插值会人为制造平滑段,压低自相关、扭曲转移计数,此时应标记为缺失段并在分析中剔除,而不是强行填补。对含趋势的序列,插值应在去趋势后的残差上进行,否则会把趋势斜率错误地“复制”进缺失区间。下面是一段可直接参考的整理代码,示例参数仅用于说明流程:

import pandas as pd, numpy as np

# df: 含 time, value 两列,time 为等间隔时间戳
df = df.sort_values("time").drop_duplicates("time", keep="last")
full_idx = pd.date_range(df.time.min(), df.time.max(), freq="5min")
s = df.set_index("time").value.reindex(full_idx)

miss_ratio = s.isna().mean()
if miss_ratio < 0.05:
    s = s.interpolate(method="linear", limit=3)   # 仅补短缺口
else:
    s = s.dropna()                                # 长缺口剔除并记录
print("缺失比例:", round(miss_ratio, 4), "有效点数:", s.notna().sum())

二、异常值识别与平稳性初步判断

异常值识别建议同时用“全局”和“局部”两种视角。全局视角用中位数与 MAD(中位数绝对偏差)构造稳健判据:|xt − median| > 3 × 1.4826 × MAD 的点标记为可疑;局部视角用滑动窗口内的差分或滚动标准差,捕捉突跳与方差突变。仅用 3σ 规则在含趋势或重尾的随机过程数据上容易误判,稳健统计量更合适。识别出的异常点不宜直接删除,应先判断是记录错误还是过程本身的真实跳跃——后者恰恰是状态转移的重要信息。

平稳性初步判断以图形为主、统计量为辅。时序图上观察均值是否漂移、方差是否随时间扩张;分段计算均值与方差(例如把序列切成 5 段),若段间差异显著则提示非平稳。对明显线性趋势可先差分再观察,但要注意差分会引入单位根式的自相关结构,正式判断仍应交给 ADF、KPSS 等检验。下面的示意图把本节的数据准备与探索性分析流程、各工具的输出及其对后续检验的作用组织在一起:

原始观测序列 等间隔时间戳 · 采样 5min 重复戳 / 缺失 / 异常 数据清洗 短缺口线性插值 长缺口剔除并记录 异常值识别 MAD 稳健判据 滚动差分 / 方差突变 平稳性初步判断 时序图 · 分段均值/方差 趋势与方差漂移观察 自相关 / 偏自相关图(ACF / PACF) 滞后 k ρ 滞后 k φ 截尾/拖尾形态 → 提示 AR、MA 或 ARMA 阶数 状态转移计数矩阵(示例:3 状态) 从 \ 到 S1 S2 S3 S1 142 18 2 S2 21 130 15 S3 3 17 96 行归一化 → 经验转移概率,检查对角占优与稀疏行 探索性结论 → 正式检验的输入 平稳性检验(ADF / KPSS) 模型定阶(ARMA 阶数) 残差白噪声诊断 马尔可夫性 / 转移检验

三、自相关与偏自相关图的读法

ACF 与 PACF 是探索阶段信息量最大的两张图。ACF 在滞后 k 处的值反映 xt 与 xt−k 的线性相关程度,PACF 则剔除中间滞后影响后给出净相关。经验读法是:ACF 快速衰减、PACF 在 p 阶后截尾,提示 AR(p);ACF 在 q 阶后截尾、PACF 拖尾,提示 MA(q);两者都拖尾则考虑 ARMA。需要强调,截尾与拖尾只是形态提示,样本量较小时置信带很宽,不能据此直接定阶,最终仍要结合信息准则与残差检验。绘图时建议同时画出 ±1.96/√n 的置信带,并标注样本量 n,避免把随机波动误读为显著相关。

四、转移计数矩阵与状态序列

若观测数据已被离散化为状态序列(如设备状态“正常/预警/故障”、天气“晴/阴/雨”),应统计转移计数矩阵 N,其中 Nij 表示从状态 i 一步转移到状态 j 的次数。对 N 按行归一化即得经验转移概率矩阵,可初步观察对角占优程度(状态持续性)与稀疏行(样本不足的状态)。上图中给出的 3 状态计数为教学示例,实际分析时应同时报告每行总数,行总数过小(例如少于 30)的转移概率不宜直接用于推断。若数据为连续值,可先按分位数或业务阈值离散化,但离散化方案必须记录,因为不同划分会显著改变转移结构。

探索性分析的目标是“形成假设并暴露问题”,而不是给出最终结论。把缺失处理规则、异常点清单、离散化阈值、ACF/PACF 图与转移计数矩阵一并归档,后续正式检验的每一步才有可追溯的依据。

完成上述步骤后,数据应达到三个基本状态:时间索引连续且规则、缺失与异常有明确处理记录、序列的平稳性与相关结构已有初步判断。此时再进入平稳性检验、模型定阶与残差诊断,统计量的含义才清晰,结论也才站得住。