以下是三种经典的时间序列预测方法的详细介绍,它们均适用于分析和预测随时间演变的数据模式:
ARIMA模型(自回归积分移动平均模型)
全称:AutoRegressive Integrated Moving Average
核心构成: ARIMA模型被广泛视为时间序列分析中的“黄金标准”,其结构由三个关键部分融合而成:
- AR(自回归):假设当前观测值与历史值存在线性关系。例如,今日股价可能受到前几日价格的影响。
- I(差分/积分):通过差分操作将非平稳序列转化为平稳序列。如使用“今日值减去昨日值”来提取变化趋势。
- MA(移动平均):引入过去预测误差对当前值的影响机制,增强模型对波动的适应能力。
参数表示: 模型形式为 ARIMA(p, d, q),其中 p 表示自回归阶数,d 为差分次数,q 是移动平均项的阶数。
适用范围: 适用于单变量、相对平稳的时间序列数据,尤其适合短期预测任务,如月度销售额、每日气温等。
局限性: 要求数据具备平稳性前提;难以有效建模复杂的季节性规律;在长期趋势预测中表现不佳。
季节性时间序列模型
典型代表:SARIMA(Seasonal ARIMA)
核心思想: 在传统ARIMA基础上扩展出季节性建模能力,能够识别并拟合周期性重复的模式。
模型表达式: SARIMA(p,d,q)(P,D,Q)m,其中:
- (p,d,q):对应常规ARIMA的参数设置;
- (P,D,Q):描述季节性成分的自回归、差分和移动平均阶数;
- m:表示季节周期长度,例如 m=12 对应年度季节性(每月数据)。
典型应用场景:
- 电力负荷预测——体现每日用电高峰与周末效应;
- 旅游人数变化——反映夏季旺季与冬季淡季的交替;
- 零售销售波动——捕捉节假日促销带来的周期性增长。
优势特点: 能同时处理趋势演变与多重季节性,在具有强周期规律的数据上表现优异。
Prophet模型
开发者:由 Facebook(现 Meta)于2017年开源发布
建模原理:
将原始时间序列分解为若干可加组件,公式如下:
[y(t) = g(t) + s(t) + h(t) + ε_t]
- g(t):趋势项,支持线性或逻辑增长形态;
- s(t):季节性项,涵盖周、月、年等多个时间尺度的周期波动;
- h(t):节假日效应,允许用户自定义特殊日期(如春节、双十一)的影响;
- ε_t:不可解释的随机误差项。
主要优势:
- 易用性强:自动处理缺失数据、异常点以及趋势突变位置;
- 可解释性高:各组成部分独立可视化,便于理解和调整;
- 业务适配性好:非专业人员也能快速部署应用;
- 灵活性突出:支持手动注入节假日、促销活动等先验知识。
常见应用领域:
- 网站访问量预测——区分工作日与周末流量差异;
- 产品需求预估——受重大节日驱动的需求激增;
- 用户增长轨迹建模——结合长期上升趋势与季节波动。
代码实现示例:
from fbprophet import Prophet
import pandas as pd
# 数据格式需包含 ds(日期) 和 y(数值)两列
df = pd.DataFrame({'ds': dates, 'y': values})
# 构建并训练模型
model = Prophet(
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=False
)
model.add_country_holidays(country_name='CN') # 添加中国法定假日影响
model.fit(df)
# 预测未来30天
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
三类方法对比总结
| 特性 | ARIMA | 季节性模型(SARIMA) | Prophet |
|---|---|---|---|
| 复杂度 | 中等 | 较高 | 低 |
| 季节性处理能力 | 弱 | 强 | 强 |
| 参数调优难度 | 需专业知识 | 需专业知识 | 自动化程度高 |
| 缺失值处理方式 | 需预先处理 | 需预先处理 | 自动处理 |
| 模型可解释性 | 较弱 | 较弱 | 强 |
| 适合的数据规模 | 中小规模 | 中小规模 | 大规模 |
为何被称为“传统”方法?
文中所称的“传统”是相对于近年来兴起的深度学习技术(如LSTM、Transformer等)而言的。这些经典方法共有的特征包括:
- 基于统计理论:依赖明确的数学模型与统计假设;
- 具备良好可解释性:模型运作机制清晰透明;
- 训练数据需求少:即使样本量有限也能有效建模;
- 计算开销低:可在普通硬件环境中运行;
- 成熟可靠:历经多年实践验证,拥有坚实的理论基础。
实际应用选择建议
优先选用 ARIMA 或 SARIMA 的情况:
- 数据量处于中等水平(数百至数千个观测点);
- 需要进行严谨的统计推断;
- 以短期预测为主要目标。
推荐使用 Prophet 的场景:
- 数据呈现明显的多重季节性特征;
- 存在较多缺失值或异常点;
- 希望实现快速建模且由非技术人员操作;
- 需将业务知识(如节假日、促销)融入预测过程。
考虑采用深度学习方法的情形:
- 数据体量庞大(超过数万个时间点);
- 涉及多个相关变量(多维输入);
- 潜在模式高度复杂且呈非线性;
- 具备充足的计算资源支持训练与推理。


雷达卡


京公网安备 11010802022788号







