时间序列预测
能力定位
把“下个月大概多少”变成一套可复核的预测任务:定义预测对象与时间截止点,检查数据是否真的可用,建立朴素基线,用滚动窗口比较候选方法,最后交付点预测、区间、假设和失效条件。
适合销量、订单、库存需求、网站流量、能耗、客流、工单量和设备读数。它既能为现有模型设计评估,也能在没有专用模型时给出基线方案;若当前工具不能实际训练或运行模型,应明确只交付方案、数据规格和验收规则。
快速导航
- 首次整理数据:读取 时序数据契约。
- 选择回测方式、指标和预测区间:读取 回测与验收。
- 只有一列日期和一列数值:先做季节朴素基线。
- 有促销、节假日或价格:只使用在预测时点已经知道的变量。
- 多门店、多商品:先决定逐序列预测、分层汇总还是共享模型。
新手30秒入门
提供时间列、目标列、时间粒度、历史范围、预测跨度和业务用途。例如:“用过去两年的日订单预测未来 28 天,节假日已知,结果用于备货,缺货成本高于积压成本。”
先返回 预测任务卡:截止时点、目标口径、粒度、跨度、可用特征、不可用未来信息、朴素基线、回测切片、主指标和交付格式。没有原始数据时不虚构数字,只给模板与最小数据需求。
功能索引
| 阶段 | 核心问题 | 产物 |
|---|---|---|
| 任务定义 | 预测谁、预测多远、何时作出预测 | 预测任务卡 |
| 数据体检 | 时间是否连续、口径是否一致、是否有泄漏 | 数据质量报告 |
| 基线建立 | 简单方法能达到什么水平 | 基线预测与误差 |
| 候选建模 | 趋势、季节、外生变量如何利用 | 候选方法矩阵 |
| 滚动回测 | 模型在多个历史时点是否稳定 | 分切片回测表 |
| 区间与场景 | 不确定性和业务事件如何表达 | 预测区间与情景表 |
| 上线监控 | 何时漂移、何时重训或降级 | 监控与回退规则 |
标准工作流
1. 固定预测时点
明确每次预测在什么时间生成、当时能看到哪些字段、结果服务哪个决策。库存预测和经营目标不是一回事;前者要估计需求分布,后者通常包含主观目标。
2. 建立数据契约
统一时区、粒度、单位、退款与取消口径。标注停业、断货、系统故障和缺测,区分“真实为零”与“没有记录”。任何回填都保留原值和方法。
3. 画出时间结构
检查长期趋势、周内与年内季节性、突变、尖峰、长尾和结构变化。分组序列同时比较规模、波动与稀疏度,不只看总量。
4. 建立不可跳过的基线
至少比较最近值、移动平均和与业务周期一致的季节朴素法。复杂模型若不能持续超过合适基线,就不应上线。
5. 构造可用特征
滞后、滚动统计必须只由预测时点之前的数据计算。日历和已排期促销可作为已知未来变量;未来成交、事后标签和最终结算值不得泄漏进训练或回测。
6. 用滚动窗口回测
按真实使用方式设置多个预测起点,每个起点只训练或拟合当时可见的数据。保持预测跨度与上线一致,并单独报告节假日、活动期、长尾商品等困难切片。
7. 选择指标与损失
同时提供尺度相关误差和可跨序列比较的误差。含大量零值时避免直接依赖百分比误差;备货场景可增加缺货与积压的非对称成本。
8. 形成区间与业务场景
除中位预测外,给出合理的低位与高位范围。将“常态、活动超预期、供应受限”等业务假设与统计区间分开,不用人为情景冒充概率结论。
9. 上线监控与回退
记录模型版本、训练截止点、输入快照和预测批次。监控数据延迟、特征缺失、实际误差、偏差方向和区间覆盖率;异常时回退到已验证基线。
输出规范
预测表至少包含 series_id、forecast_origin、timestamp、horizon_step、point、lower、upper、model_version、data_cutoff 和 flags。回测表包含 fold_id、train_end、test_range、baseline_score、candidate_score、segment 和 coverage。
结论先写“可用于什么决策”,再写误差、区间和限制。不要只交一条漂亮曲线;必须带基线对比、回测窗口、困难切片和不可用场景。
能力边界
- 不把预测结果视为承诺或经营目标,也不保证极端事件可由历史数据预见。
- 不用随机打乱切分评估时序任务,不让未来字段或事后修订泄漏。
- 不从少量观测声称存在稳定季节性,不把共同变化解释为因果影响。
- 股票、医疗或安全关键场景只能提供分析支持,不能替代持证专业判断。
- 无法实际运行模型时,不伪造拟合分数、置信区间或回测结果。
稳定性保障
每次预测绑定数据截止点、Schema 版本、特征版本和代码版本。对迟到数据、重复时间戳、负值、量纲突变和全零序列设置阻断或降级规则;批量运行前先用少量代表序列验证资源与输出形状。
用影子预测比较新旧方案,至少覆盖一个主要业务周期后再替换。误差连续越界、区间覆盖失真或输入分布明显漂移时,停止自动采用新结果并回退基线。
深度定制
零售可增加门店—商品层级一致性和断货校正;运营流量可按渠道与活动分层;能耗可纳入已知天气预报并单列极端天气;设备指标可重点监控漂移和异常区间,而不是只追求平均误差。
FAQ
历史越长越好吗? 不一定。口径变化后的旧数据可能误导模型,应按制度、产品和渠道变化设定有效历史。
为什么必须有朴素基线? 它揭示复杂度是否真正带来增益,也是在数据或模型异常时可用的回退方案。
促销信息能不能加入? 可以,但必须确认预测生成时已经知道排期与强度;事后统计的实际曝光不能作为未来输入。
区间很宽是不是模型不好? 可能是数据噪声大,也可能是模型诚实表达不确定性。应结合覆盖率和决策成本判断。
反模式与修正
| 反模式 | 修正 |
|---|---|
| 随机拆分训练集与测试集 | 按时间滚动切分并固定预测起点 |
| 只报一个平均误差 | 同时报基线、时间切片和业务分组 |
| 用未来才知道的字段 | 建立“预测时点可用性”清单 |
| 把缺货销量当真实需求 | 标记受限区间并做单独情景处理 |
| 只给点预测 | 给区间、覆盖率和失效条件 |
按需 references
时序数据契约 用于导入、清洗和防泄漏;回测与验收 用于比较模型、设定区间和上线门槛。只做任务定义时无需加载第二份。