时序数据技术

Time Series · Forecasting · Anomaly Detection

问题定义

时序数据技术处理按时间顺序记录的数据序列。核心问题包括:趋势与季节性分解、缺失值处理、预测建模、异常检测、多变量时序分析、因果推断。

核心算法

ARIMA / SARIMA

自回归积分滑动平均模型,结合 AR(自回归)、I(差分)、MA(滑动平均)三个组件。

ARIMA(p,d,q): (1 - Σϕ_i L^i)(1 - L)^d y_t = (1 + Σθ_j L^j)ε_t
其中 L 为滞后算子,p/d/q 分别为 AR 阶数、差分阶数、MA 阶数

LSTM / GRU

长短期记忆网络通过门控机制解决 RNN 梯度消失问题,能够学习长序列的依赖关系。

LSTM 门控:f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
i_t = σ(W_i · [h_{t-1}, x_t] + b_i)
C_t = f_t × C_{t-1} + i_t × tanh(W_C · [h_{t-1}, x_t] + b_C)

Transformer for Time Series

Informer、Autoformer、Fedformer 等针对时序优化的 Transformer 架构,通过稀疏注意力机制高效处理长序列。

ProbSparse Attention: A(Q,K,V) = softmax( Q̄K̄^T / √d ) × V
其中 Q̄、K̄ 为稀疏采样的 Query 和 Key,显著降低计算复杂度

时序异常检测

基于统计(IQR、Grubbs Test)、基于重建误差(Autoencoder)、基于预测误差三类方法。

异常分数:score_t = |y_t - ŷ_t| / σ
阈值判定:y_t 为异常 if score_t > threshold(通常取 3.0)

算法复杂度分析

算法 时间复杂度 空间复杂度 备注
ARIMA O(n × p² + p³) O(p²) p 为模型阶数,n 为样本数
LSTM O(seq_len × hidden²) O(seq_len × hidden) per time step,seq_len 为序列长度
Vanilla Transformer O(n² × d) O(n²) n 为序列长度,d 为隐层维度
Informer (ProbSparse) O(n × log n × d) O(n × log n) 稀疏注意力,降低到次线性复杂度
Autoformer O(n × log n × d) O(n × d) 使用自相关注意力代替 softmax 注意力

工程实践指南

数据预处理

模型选择

参数调优

评估指标

开源项目

Prophet

Facebook 开源的时序预测工具,自动分解趋势-季节-节假日三组件,支持 Python/R,对缺失值和异常值鲁棒,适合业务时序分析。

statsmodels

Python 统计建模库,提供 ARIMA、SARIMAX、VAR、指数平滑(ETS)等经典时序模型,以及完整的统计检验和诊断工具。

Darts

统一的时序预测库,集成 ARIMA、Prophet、N-BEATS、Transformer、LSTM 等 30+ 模型,支持自动模型选择与集成。

Merlion

Salesforce 开源的时序智能库,集成时序预测与异常检测,提供标准化评估流程和多样化模型集成方案。

参考文献