7.3 应用场景:经济、销售、资源、异常检测
本节摘要:时间序列分析的应用远不止"预测销量"。本节把常见应用分为四类——经济预测、销售预测、资源管理、异常检测——并讨论每类的关键指标、数据特征、典型方法。
学习目标
阅读完本节,你应当能够:
- 列出时间序列分析的四类典型应用场景。
- 说出每类场景的关键指标和典型方法。
- 根据业务问题反推应该用什么数据 / 方法。
一、应用总览
时间序列分析应用大致分四类:
| 应用 |
关键问题 |
典型方法 |
数据频率 |
| 经济预测 |
GDP / CPI / 失业率未来走势 |
SARIMA / VAR / DFM |
月度 / 季度 |
| 销售预测 |
销量 / 客单价 / 复购率 |
Prophet / Holt-Winters / LightGBM |
日 / 周 |
| 资源管理 |
库存 / 容量 / 人员排班 |
ARIMAX / Prophet + 外生变量 |
日 / 小时 |
| 异常检测 |
故障 / 欺诈 / 突发 |
STL 残差 / Isolation Forest / GARCH |
分钟 / 小时 |
二、经济预测
场景特征
- 数据:宏观指标(GDP、CPI、PMI、失业率)。
- 频率:月度或季度。
- 关键挑战:周期长度不固定(5–10 年)、有政策突变。
- 典型问题:"明年 GDP 增速会是多少?"
典型方法
- SARIMA(p,d,q)(P,D,Q,12):基线方法,处理月度季节性。
- VAR(向量自回归):多指标联合建模,捕捉"GDP 和失业率的反向关系"。
- DFM(动态因子模型):从多个相关指标中提取共同因子。
- Prophet:处理政策突变(变点检测)。
工程要点
- 经济数据通常有"季节调整"版本(统计局公布的 SA 系列),优先用 SA 数据建模。
- 预测 horizon 越长、置信区间越宽;5 年以上预测基本只能给区间。
- 业务方对"区间宽度"敏感——给一个范围比单点预测更有用。
三、销售预测
场景特征
- 数据:电商 / 线下零售的日 / 小时销量、订单数、客单价。
- 频率:日 / 小时,常见日数据。
- 关键挑战:周季节性 + 趋势 + 促销脉冲 + 节假日。
- 典型问题:"下周一的销量大概多少?"
典型方法
- Prophet:把促销、节假日作为事件建模。
- Holt-Winters:基线方法。
- LightGBM + 时序特征:把"星期几、是否节假日、过去 7 天销量"作为特征,机器学习模型。
- DeepAR / Temporal Fusion Transformer:多序列联合建模。
工程要点
- 销售预测几乎一定要把促销活动作为外生变量。否则春节、双 11 等重大事件无法建模。
- 日销量常带零值(如新品上市前),用 SMAPE 而非 MAPE。
- 滚动重训:模型用过去 2 年数据,每 1 周 / 1 月重训一次。
四、资源管理
场景特征
- 数据:服务器 QPS、CPU 利用率、库存周转、人员排班需求。
- 频率:分钟 / 小时。
- 关键挑战:日内 + 日间 + 周末多重季节性;突发事件(系统故障)。
- 典型问题:"明早 9 点需要多少台机器?"
典型方法
- Prophet + 多 Fourier 项:建模日 + 周季节性。
- ARIMAX:把"是否营销活动"作为外生变量。
- LSTM / N-BEATS:复杂多周期数据。
- 简单阈值 + 上界保护:运维场景常用"预测 + 20% 余量"避免过载。
工程要点
- 资源预测的代价是"预测低了要付错失机会的代价"、"预测高了要付资源浪费"。用 MASE 和预测区间覆盖率共同评估。
- 容量规划通常用 95–99 分位数预测("绝大多数情况下足够"),不是中位数预测。
- 突发事件的预测常常不靠谱(黑天鹅),要做应急储备。
五、异常检测
场景特征
- 数据:监控指标、用户行为、交易记录。
- 频率:分钟 / 实时。
- 关键挑战:异常稀少、定义模糊(什么算"异常")。
- 典型问题:"这 5 分钟的流量是正常波动还是故障?"
典型方法
- STL 残差:分解后残差如果超过 ±3σ,标为异常。
- 滚动 Z-score:基于滚动均值和标准差。
- Isolation Forest / One-Class SVM:机器学习方法。
- 自编码器 / 时序 Transformer:深度学习方法。
- GARCH:金融波动率建模。
工程要点
- 异常检测不应当只用绝对阈值——节假日、促销日的"正常水平"本身就高。
- 用 STL 残差或滚动 Z-score 之前,必须先做季节性调整。
- 异常检测系统的"召回率 vs 误报率"要业务方参与调优。
- 异常解释比异常识别更难:检测到"这 5 分钟异常"后还要告诉业务"为什么"。
六、跨场景的共性原则
无论哪种应用,以下原则都适用:
- 数据勘查优先:先看图、先看统计量,不要直接建模。
- 基线先行:朴素季节性预测常常胜过复杂模型。
- 外生变量显式建模:促销、政策、天气等外生变量对预测影响巨大。
- 滚动评估:用滚动窗口评估模型,而不是一次性 train/test split。
- 预测 + 区间:永远给区间,不只给点预测。
本节要点回顾
- 四类应用:经济预测(5–10 年周期、宏观)、销售预测(日 / 周季节、促销)、资源管理(多重季节、容量余量)、异常检测(罕见事件、解释难)。
- 方法选择:看数据频率、季节性、外生变量、业务对预测的容忍度。
- 跨场景原则:数据勘查优先、基线先行、外生变量显式、滚动评估、给区间。
- 下一节线索:7.4 收尾——异常检测的具体方法、非平稳处理的兜底方案。
侦探笔记:4 大场景的差异
时间序列的应用场景在数据特性、模型选择、评估指标上差异极大。
| 场景 |
数据特性 |
推荐模型 |
评估指标 |
| 经济预测 |
月/季度,低频,长周期 |
ARIMA / ETS |
MAPE |
| 销售预测 |
日/周,中频,强季节 |
Prophet / SARIMA |
RMSE |
| 资源管理(电力/水务) |
小时/日,频,强周期+季节 |
SARIMAX / 状态空间 |
MAE |
| 异常检测 |
任意频率,关心残差 |
STL + 残差阈值 |
召回率 / 误报率 |
选场景的 3 个问题
- 预测步长是多少?1 步 vs 100 步难度差几个量级
- 数据频率多高?决定 ARIMA 还是 Prophet 还是深度模型
- 异常重要吗?异常检测场景需要专门设计
反模式
不要把学术论文里的 SOTA 模型直接套到生产里。论文关心 1 个数据集的指标,生产关心 1000 个场景的稳定性。简单模型 + 完整监控 > 复杂模型 + 黑盒。