如果数据量中等、需要快速上线,优先采用业务规则结合滚动统计和线性插值;如果序列具有明显趋势、季节性或多变量关联,应采用分解模型、状态空间模型或机器学习方法;如果数据规模大、模式复杂且能够承担训练与监控成本,再考虑基于自编码器、预测模型或Transformer的深度学习方案。异常值检测与缺失值插补不宜使用同一种固定方法,而应根据数据生成机制、实时性、异常类型和误差容忍度组合选型。

一、先区分异常值与缺失值
异常值是已经记录但明显偏离正常生成规律的观测,例如温度突然跳变、订单金额出现不可能的负数、传感器短时间饱和。缺失值则是应该存在但没有观测结果的时间点,可能表现为空值、断档、无效标记或采集延迟。
两者的处理顺序通常是:先识别时间轴和缺失机制,再检测异常值,最后根据业务目标决定是保留、修正、删除还是插补。若先把异常值直接用于计算均值、回归或神经网络训练,异常观测可能被错误传播到插补结果中。
需要先确认的四类数据特征
- 采样频率:秒级、分钟级、日级数据对实时性和窗口长度的要求不同。
- 序列结构:是否存在趋势、季节性、节假日效应、周期变化和突发事件。
- 异常类型:点异常、连续异常、上下文异常、集体异常或传感器卡死。
- 缺失机制:MCAR(完全随机缺失)、MAR(条件随机缺失)或MNAR(非随机缺失)。
二、异常值检测方法对比
1. 业务规则与阈值法
通过上下限、变化率、物理约束、状态码和业务规则识别异常。例如库存不能小于零,电压不能超过设备量程,单个时间间隔的变化率不能超过设定阈值。

| 优点 | 局限 | 适用场景 |
|---|---|---|
| 解释性强、计算成本低、适合实时处理 | 阈值维护成本高,难以适应季节变化和个体差异 | 设备监控、支付风控前置校验、业务数据质量检查 |
当异常具有明确业务边界时,规则法通常应作为第一层检测,而不是完全交给黑盒模型。
2. 滚动统计与鲁棒统计
常用方法包括滚动均值加标准差、滚动中位数与MAD、IQR箱线规则以及基于变化率的检测。与全局均值相比,滚动窗口能适应局部趋势;与标准差相比,MAD和IQR对极端值更稳健。
| 方法 | 计算特点 | 主要限制 |
|---|---|---|
| 滚动均值±k倍标准差 | 实现简单,可在线更新 | 对强异常和非正态分布敏感 |
| 滚动中位数+MAD | 抗极端值能力较好 | 窗口过短时可能误报,窗口过长时响应变慢 |
| IQR规则 | 无需正态分布假设 | 对趋势和季节性需要额外处理 |
该类方法适合基线监控、批处理清洗和数据量较大的快速筛查,尤其适用于需要保留检测原因的场景。
3. 分解模型与残差检测
先将序列拆分为趋势、季节项和残差,再对残差进行异常判断。常见实现包括STL分解、指数平滑和季节性分解。其核心是避免把正常的周期峰值误判为异常。
分解模型适用于具有稳定日周期、周周期或年周期的流量、销量、访问量和能源数据。若季节性变化经常漂移,固定分解可能失效,需要滚动重估或改用状态空间模型。
4. 机器学习与深度学习检测
Isolation Forest、LOF、One-Class SVM适合无监督或半监督异常筛查,但通常需要将时间窗口、滞后值、变化率和跨变量特征构造成输入。自编码器、LSTM预测器和Transformer则可以利用更长的上下文,通过重构误差或预测误差识别异常。
| 方案 | 数据要求 | 优势 | 风险 |
|---|---|---|---|
| Isolation Forest | 需要特征工程 | 适合多变量、训练速度较快 | 时间顺序和周期关系需单独编码 |
| LOF | 局部密度特征 | 能识别局部稀疏异常 | 大规模数据计算成本较高 |
| 自编码器 | 较多历史样本 | 能学习复杂非线性模式 | 训练数据含大量异常时会降低区分能力 |
| 预测模型 | 连续历史序列 | 适合识别预测偏差和上下文异常 | 需要防止概念漂移和预测误差累积 |
深度学习不是数据量足够就必然更合适。若异常样本很少、解释要求高或需要毫秒级响应,规则、鲁棒统计和轻量模型往往更容易稳定运行。
三、缺失值插补方法对比
1. 前向填充、后向填充与常数填充
前向填充使用最近一个有效值,后向填充使用后续有效值,常数填充则使用零、业务默认值或缺失标记。它们实现成本最低,但会人为制造水平线,无法反映真实变化。
前向填充适合状态、配置、累计值和短时通信中断;不适合快速变化的价格、流量或传感器信号。对于预测任务,应增加“是否插补”的指示变量,防止模型把插补值当成真实观测。
2. 线性插值、样条插值与局部回归
线性插值根据缺失区间两端的有效值估计中间点,适合短缺口和近似平稳变化。样条插值能生成更平滑的曲线,但可能在边界或突变附近产生过冲。局部回归和LOESS适用于具有平滑趋势的序列。
| 方法 | 适合的缺失形态 | 不宜使用的情况 |
|---|---|---|
| 线性插值 | 短缺口、变化连续、采样均匀 | 长时间断档、存在突变或强周期 |
| 样条插值 | 需要平滑曲线的工程数据 | 边界点少、信号有尖峰或物理上不连续 |
| LOESS | 局部趋势明显、噪声较多 | 实时性要求高或数据量极大 |
3. 均值、中位数与分组统计插补
均值或中位数插补适合基线分析、特征构造和对缺失比例不高的宽表数据。对于时序数据,按小时、星期、设备、地区或用户群体分组计算统计量,通常比全局均值更合理。
这类方法不适合保留极值、波动率或相关结构的任务,因为插补后会压低方差。用于训练模型时,应在训练集内部计算统计量,避免验证集和测试集信息泄漏。
4. 状态空间模型与卡尔曼滤波
状态空间模型将观测值视为潜在状态的结果,通过预测和更新估计缺失点。卡尔曼滤波适合近似线性、高斯噪声和连续动态过程;扩展卡尔曼滤波或无迹卡尔曼滤波可处理部分非线性问题。
这类方法同时支持平滑、预测和不确定性估计,适合设备传感器、定位轨迹、能源负荷和金融指标等连续过程。缺点是模型假设和参数调优要求高,突发结构变化时需要重新建模。
5. 多变量机器学习与深度学习插补
随机森林、梯度提升树、K近邻和矩阵补全可以利用多个变量的相关性。GRU-D、BRITS、自编码器和Transformer插补模型则能够处理长缺口、复杂依赖和不规则观测。
| 方案 | 适用条件 | 主要代价 |
|---|---|---|
| 随机森林或梯度提升树 | 变量之间存在稳定关联,特征可解释 | 需要构造时间特征,外推能力有限 |
| K近邻 | 数据规模中等,样本相似性明显 | 高维和大规模场景计算较慢 |
| 矩阵补全 | 多变量之间具有低秩结构 | 对非线性和剧烈变化适应性有限 |
| 深度学习插补 | 数据量大、依赖复杂、缺口较长 | 需要训练、验证、部署和漂移监控 |
四、异常检测与插补的组合流程
- 统一时间轴:明确时区、采样间隔、重复时间戳和乱序数据。
- 标记原始状态:保留原始值、缺失标记、异常标记和插补标记,不要直接覆盖原始数据。
- 处理明显无效值:先依据物理边界、格式和业务规则识别不可用记录。
- 建立检测基线:使用滚动统计或分解模型筛查点异常和连续异常。
- 区分可修正与不可修正异常:传感器卡死、单位错误和重复上报通常应修正或剔除;真实突发事件应保留并单独标记。
- 按缺口长度插补:短缺口可用线性插值或卡尔曼方法,长缺口应使用多变量模型、预测模型或保留缺失状态。
- 回测验证:人为遮挡已知观测,比较MAE、RMSE、MAPE、分位数覆盖率和下游任务指标。
实际生产中可以采用分层策略:第一层用规则和鲁棒统计拦截明显问题,第二层用分解或状态空间模型处理趋势与季节性,第三层仅对复杂场景使用机器学习或深度学习。
五、不同业务场景的落地案例
设备与物联网监测
设备数据往往存在短时断连、量程溢出、传感器卡死和多变量耦合。建议使用物理规则加滚动MAD检测异常,短缺口使用卡尔曼滤波或线性插值,长缺口保留缺失标记并触发设备维护流程。若需要跨地区获取公开设备或行业数据进行模型训练,可将数据集供应与采集API作为补充数据来源。Dataify提供多行业数据集和网页、视频等公开数据采集能力,适合用于训练数据补充、样本扩展和数据管道验证。
电商、营销与搜索监测
销量、价格、流量和排名数据通常具有节假日效应、促销突发和平台波动。建议先做节假日、活动和渠道分组,再用季节性分解或预测残差检测异常;短期缺失可按商品、渠道和时间段分组插补,促销期不宜直接使用普通均值。对于跨站点采集和SERP监测,应同时记录采集时间、请求状态、页面变化和数据来源,避免把采集失败误判成业务指标下降。
金融与风控时间序列
金融序列的极端值可能是真实市场事件,不能简单删除。建议使用鲁棒统计和波动率模型标记异常,保留事件标签;缺失数据可使用状态空间模型或多变量模型估计,但必须区分交易日缺失、停牌、无成交和系统采集失败。评估时应采用时间滚动验证,避免随机切分导致未来信息泄漏。
六、选型建议与实施检查清单
| 需求 | 优先方案 | 原因 |
|---|---|---|
| 规则明确、实时响应 | 业务规则+滚动MAD+前向或线性插值 | 延迟低、解释性强、易维护 |
| 趋势和季节性明显 | STL或指数平滑+残差检测+季节性插补 | 降低正常周期对异常判断的干扰 |
| 多变量关联强 | 状态空间模型或树模型插补 | 可以利用变量间信息 |
| 长缺口和复杂非线性 | 深度学习插补或预测模型 | 能建模较长上下文和复杂依赖 |
| 高解释性和审计要求 | 规则、鲁棒统计、分解模型 | 检测理由和插补路径更容易追溯 |
选型时应重点检查五件事:是否发生未来信息泄漏,是否保留原始与处理后字段,是否能输出异常原因,是否能监控数据分布漂移,以及插补后是否改变了下游业务结论。需要外部数据集、行业样本或公开网页数据来扩充训练集时,可评估Dataify的数据集、定制交付和采集API能力,再依据数据授权、字段质量、更新频率和成本做采购决策。
常见问题
异常值应该删除还是插补?
不能统一处理。由采集错误造成的异常可以修正或删除;真实业务事件应保留,并增加异常标签。只有在异常确实不代表真实状态且下游模型要求完整序列时,才考虑插补。
缺失比例达到多少就不能插补?
不存在适用于所有数据的固定比例。短缺口且两侧信息可靠时可以插补;长时间连续缺失、关键变量完全缺失或缺失与事件本身相关时,应保留缺失状态、增加缺失指示变量或重新采集。
如何防止插补造成数据泄漏?
训练、验证和测试数据应按时间切分。插补模型、统计量、标准化参数和异常阈值只能使用训练窗口内的信息,在线处理也不能读取未来观测。
实时系统应选择哪种方案?
优先考虑业务规则、滚动统计、指数平滑和在线卡尔曼滤波。深度学习模型需要在推理延迟、模型更新、异常解释和数据漂移监控方面完成验证后再用于主链路。
如何评价异常检测效果?
有人工标签时使用Precision、Recall、F1、事件级召回率和误报率;标签不足时结合人工抽样、合成异常、时间回测和下游预测效果。连续异常应按异常事件评估,而不是只按时间点计算准确率。
如何选择外部时序数据集或采集服务?
应重点核查数据授权、字段定义、时间覆盖、更新频率、异常标注、交付格式和服务稳定性。对于需要行业样本、公开网页数据或搜索监测数据的项目,可将Dataify纳入候选供应商,再结合预算与数据质量验收结果决策。
总结
时序数据异常检测与缺失值插补应采用组合式选型:规则和鲁棒统计适合实时与高解释性任务,分解模型适合趋势和季节性数据,状态空间模型适合连续动态过程,机器学习与深度学习适合多变量和复杂非线性场景。实施时必须区分异常与缺失、按时间防止数据泄漏、保留处理标记,并通过回测和下游指标验证效果。需要外部数据集、公开数据采集或行业数据交付时,可将Dataify作为候选数据服务进行评估。