教程 ·
时间序列预测怎么选模型?ARIMA 和 Prophet 的适用场景与结果解读
时间序列预测方法对比:ARIMA适合什么数据、Prophet适合什么数据、平稳性检验和差分怎么做、季节性和节假日效应怎么处理,以及预测结果和置信区间在论文里该如何解读和报告。
手里有一段按时间排列的数据——月度销售额、日度访问量、季度 GDP——想预测接下来几期会怎么变化。翻开教材或论文,最常见的两个名字是 ARIMA 和 Prophet。它们分别是什么、该选哪个、结果又该怎么读,是时间序列预测入门时最容易卡住的地方。
两种模型的基本逻辑
ARIMA:经典的统计学路线
ARIMA(AutoRegressive Integrated Moving Average,自回归差分移动平均模型)是时间序列分析里最经典的方法,核心思路是:用一个变量自己过去的取值和过去的误差,来预测它未来的取值。
ARIMA 由三部分组成,通常写作 ARIMA(p, d, q):
- AR(p):自回归项,用过去 p 期的取值预测当前值
- I(d):差分阶数,对原始序列做 d 次差分使其变得平稳
- MA(q):移动平均项,用过去 q 期的预测误差修正当前预测
ARIMA 的前提是序列需要(或经过差分后能变得)平稳——也就是均值、方差不随时间systematically变化。这也是 ARIMA 建模流程里"平稳性检验"这一步无法跳过的原因。
Prophet:面向业务场景的加法模型
Prophet 是 Meta(原 Facebook)开源的预测工具,设计初衷是让不具备很强时间序列统计背景的人也能做出合理的预测。它把一条时间序列拆解成几个可加的部分:
预测值 = 趋势项 + 季节性项 + 节假日效应项 + 误差项
Prophet 对缺失值、异常值的容忍度更高,而且能直接接受"节假日列表"这样的业务先验信息(比如双十一、春节这类会显著影响销量的特殊日期),不需要像 ARIMA 那样先做严格的平稳性预处理。
该选哪个:适用场景对比
| 维度 | ARIMA | Prophet |
|---|---|---|
| 理论基础 | 经典时间序列统计模型 | 加法分解模型,工程导向 |
| 数据要求 | 需要平稳或差分后平稳,对缺失值敏感 | 对缺失值、异常值容忍度较高 |
| 季节性处理 | 需要显式指定季节阶数(SARIMA) | 自动检测年/周/日多重季节性 |
| 节假日效应 | 不直接支持,需人工加入哑变量 | 原生支持自定义节假日列表 |
| 数据量要求 | 数据量较少也可建模 | 通常建议至少一年以上历史数据 |
| 可解释性 | 系数有明确统计学含义,适合论文报告显著性 | 趋势/季节性分解直观,但缺少经典假设检验框架 |
| 典型场景 | 宏观经济指标、金融序列、需要做统计推断的研究 | 业务运营数据、有明显节假日效应的销量/流量预测 |
一个简单的判断原则:如果研究目的是做统计推断(比如论文里需要报告系数显著性、需要符合计量经济学的规范表述),优先选 ARIMA;如果目的是做实用预测、数据带有明显的节假日/促销效应,且不想在平稳性预处理上花太多时间,Prophet 更合适。
ARIMA 建模的关键步骤
第一步:平稳性检验
最常用的是 ADF 检验(Augmented Dickey-Fuller Test,扩展迪基-福勒检验),原假设是"序列存在单位根(即非平稳)"。如果 ADF 检验的 p 值小于 0.05,可以拒绝原假设,认为序列是平稳的;如果 p 值较大,说明序列非平稳,需要做差分处理。
第二步:差分
对非平稳序列做一阶差分(用当期值减去上一期值)后再次做 ADF 检验,如果仍不平稳可以继续做二阶差分,但实际应用中很少需要超过二阶差分——差分阶数越高,序列的经济或业务含义越难解释。
第三步:定阶
通过 ACF(自相关函数)图和 PACF(偏自相关函数)图观察拖尾或截尾的模式,初步判断 p 和 q 的取值范围;更常见的做法是让软件按照 AIC(赤池信息准则)或 BIC(贝叶斯信息准则)最小化自动搜索最优的 (p, d, q) 组合,业界称为 auto-ARIMA。
第四步:残差诊断
模型拟合完成后,需要检查残差是否近似白噪声——通常用 Ljung-Box 检验,如果残差仍存在显著的自相关,说明模型还没有充分提取序列中的信息,需要调整阶数重新拟合。
Prophet 建模的关键步骤
Prophet 的使用流程相对简化:
- 整理数据为两列:日期列(ds)和数值列(y)
- 如果有已知的节假日或特殊事件,整理成节假日列表传入模型
- 拟合模型,指定季节性模式(加法或乘法,取决于季节波动幅度是否随趋势增大而增大)
- 输出未来若干期的预测值及置信区间,并可查看趋势、季节性的分解图
Prophet 的分解图(trend + seasonality 图)是它相比 ARIMA 的一大优势——能直观看到"整体是在涨还是在跌"和"每年/每周的周期性模式长什么样",这一点在论文的结果展示中非常直观。
结果怎么解读
置信区间的含义
无论是 ARIMA 还是 Prophet,预测输出通常都包含一个点预测值和一个置信区间(Prophet 默认输出 80% 区间,也可调整为 95%)。置信区间的宽度反映了预测的不确定性——区间越往未来延伸通常越宽,这是时间序列预测的正常特征,不代表模型出了问题,而是"越往远处预测,不确定性天然越大"。
模型评估指标
评估预测准确性常用以下几个指标,一般通过留出最后一段时间的真实数据作为测试集来计算:
- MAE(平均绝对误差):预测值与真实值之差的绝对值的平均,单位与原数据一致,直观易懂
- RMSE(均方根误差):对较大误差更敏感,适合关注"是否存在个别严重偏离"的场景
- MAPE(平均绝对百分比误差):以百分比表示的误差,便于跨量纲、跨序列比较
论文里怎么写
Methods 部分:说明数据的时间跨度和频率(如月度数据,共 60 期),对 ARIMA 需报告平稳性检验结果(ADF 检验统计量与 p 值)、差分阶数、模型定阶依据(AIC/BIC 或 ACF/PACF 图),以及残差诊断结果;对 Prophet 需说明季节性设置(年度/周度)和是否纳入节假日效应。
Results 部分:报告最终选定的模型参数(如 ARIMA(1,1,1)),给出样本外预测的评估指标(MAE/RMSE/MAPE),并附上预测值与真实值的对比图或置信区间图。
用 ChatSRS 一句话生成
整理好按时间排列的数据后,直接输入类似指令:
"帮我对这份月度销售数据做时间序列预测,先做平稳性检验,用 auto-ARIMA 自动定阶建模,预测未来 6 期并给出置信区间。"
或者如果数据有明显的节假日效应:
"这份数据是每日订单量,帮我用 Prophet 做预测,标注春节和双十一的节假日效应,预测未来 30 天。"
AI 会自动完成对应的建模流程,并给出预测图表和文字解读。
适合人群
管理学、经济学、公共卫生等学科中,凡是涉及销量预测、流量预测、宏观经济指标预测、疫情趋势预测等需要基于历史数据推断未来走势的学位论文或期刊投稿,都适合使用时间序列预测方法。
常见 FAQ
Q:数据量太少(比如只有 20 个时间点)还能做时间序列预测吗?
A:理论上 ARIMA 对数据量的要求相对宽松,但样本点过少会导致定阶不稳定、置信区间过宽,预测参考价值有限。一般建议至少有几十个时间点,且覆盖至少一到两个完整的季节性周期(如涉及月度季节性,至少覆盖 24 个月)。数据量确实有限时,应在论文中明确说明这一局限性。
Q:ARIMA 和 Prophet 可以同时用吗,选哪个的预测结果更"权威"?
A:可以同时建模并比较两者在样本外测试集上的评估指标(如 RMSE),选择表现更优的模型作为主要结果,也可以在论文中同时报告两种方法的结果作为稳健性检验(Robustness Check),说明结论不依赖于单一模型设定。
Q:预测结果的置信区间特别宽,是不是模型有问题?
A:不一定。置信区间宽窄反映的是数据本身的波动性和不确定性——如果原始序列波动较大、噪声较多,即使模型设定正确,置信区间也会相应更宽。判断模型是否合适,更应关注样本外的点预测误差指标(如 MAPE)是否在可接受范围内,而不是单纯看区间宽度。
本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内【用户中心 -> 帮助与反馈】联系我们。