下个月需要多少库存,客服应该安排多少人,广告预算能带来多少订单?这类问题面向未来,需要把历史规律转化为可验证的预测。回归与时间序列分析提供了不同但可以结合的建模思路。

预测模型的价值,要通过未见过的数据和实际决策检验。训练曲线拟合得漂亮,并不意味着未来预测可靠。

一、回归与时间序列分别关注什么

回归分析研究目标变量与解释变量的统计关系,例如订单量与价格、投放、节假日之间的关系。线性回归可以写为“订单量=截距+系数×解释变量+误差”,也可以加入多个变量和交互项。

时间序列分析特别关注顺序、趋势、季节性和自相关,例如本周订单可能与上周订单有关。常用方法从简单的上期值、移动平均,到指数平滑、ARIMA及其他模型,选择应由数据长度、规律和用途决定。

两者可以结合,例如在回归中加入滞后值、节假日和时间趋势。但仅仅把“周序号”作为解释变量,不代表已经充分处理了时间依赖。

二、先定义要预测的指标与提前量

先确定按天还是按周预测、预测未来一期还是多期、目标是订单数还是收入,以及预测结果用于备货还是排班。订单取消、补录和跨时区应采用稳定规则。

还要确认预测时能够获得哪些输入。下个月实际投放支出、实际天气或实际促销结果,在今天可能尚未知;若模型使用它们,必须给出可用预测值或情景,不能在回测时偷偷使用事后真实值。

三、案例:用前8周预测后4周订单

以下为教学假设数据,每周口径一致且数据完整。第1至12周订单依次为100、110、105、120、118、130、125、140、135、150、145、160单。

只用前8周训练,保留第9至12周作最后验证。最简单的基线是“未来每周都等于第8周的140单”。另一个演示模型是用周序号做一元线性回归,在前8周上用最小二乘估计直线。

拟合得到:预测订单≈95.571+5.095×周序号。因此第9至12周预测约为141.43、146.52、151.62、156.71单。这些小数是期望水平的估计,不代表真实订单可以分成小数笔。

回归与时间序列分析详解:订单预测、时间验证与误差评估

四、用误差比较,而不是只看曲线是否贴近

平均绝对误差MAE=各期“实际值与预测值之差的绝对值”的平均值。它与目标变量同单位,本文单位是单。

140单基线在4周上的绝对误差为5、10、5、20单,MAE=10单。趋势回归使用未四舍五入的预测值计算,MAE约4.95单。本次保留样本中,趋势模型的MAE更低。

回归与时间序列分析详解:订单预测、时间验证与误差评估

这个结论只适用于这4个假设验证点,不能据此认定趋势回归适合所有订单预测。只有12周数据,也不足以验证年度季节性或复杂模型。数据少时,复杂模型通常更容易过拟合。

五、为什么时间验证不能随意打乱

真实使用中,总是用过去预测未来。随机把所有周打散训练和验证,可能让模型间接利用未来规律;构造滞后、滚动均值或归一化时,如果使用了全量数据,也可能产生泄漏。

实际项目可以采用滚动验证:用一段过去预测后一期,再向前移动,观察不同预测起点和提前量下的误差。预处理、参数选择和特征构建都应只使用当时已经知道的信息。

最终验证集不应反复用于挑模型。若不断看这4周结果再调整参数,它们就不再是独立的最后检验,需要留出新的数据评估。

六、除了MAE,还要检查什么

RMSE会更强调大误差,适合大幅错判代价更高的场景;MAPE便于表达比例,但实际值为零或很小时可能失真。选择误差指标应结合业务损失,而不是只选数值最好看的那个。

还应检查误差是否持续偏正或偏负,节假日是否系统低估,残差是否存在时间相关,以及不同产品表现是否差异很大。库存短缺与积压的成本不对称时,可以进一步采用分位数预测或按成本设计决策规则。

正式预测应提供合理的预测区间或情景范围,帮助安排缓冲。预测区间的覆盖情况也需要回测。本文只是点预测的入门演示,没有用短小样本构造一个貌似精确的长期区间。

七、相关系数和回归系数不等于因果效应

投放支出与订单量一起增长,可能因为旺季同时推动二者变化。把订单对投放做回归,即使系数为正,也不能直接说增加1元预算就一定产生相应订单。内生性、遗漏变量和反向因果都可能影响解释。

预测模型可以在某些条件下有用,但要评估预算增加的净效果,还需要实验或具有可信识别假设的因果研究。预测“会发生什么”和判断“我做了某动作会改变什么”,需要的证据不同。

八、从模型输出到业务使用

交付时说明训练截止时间、预测提前量、指标口径、输入可得性、基线、验证窗口、误差和适用条件。模型上线后继续监控偏差;价格、产品或渠道结构明显改变时,应重新评估历史关系。

入门时先建立一个简单、能复算的基线,再加入确有业务意义的信息。一个误差可追踪、条件可解释的模型,比只能展示高拟合度的复杂模型更容易支持真实决策。

本文为数据分析方法详解系列第9篇。方法选择与整体流程可阅读:数据分析方法论总览。