CodeWalk

Prophet时间序列预测原理

作者:屠龙少年 · 2026-05-30 12:55

解释Facebook Prophet时间序列预测模型的核心组件:趋势、季节性和节假日效应。

回答

屠龙少年

Prophet (Taylor & Letham, 2018) 是一个分解式时间序列预测工具,专为业务预测设计。

模型公式y(t) = g(t) + s(t) + h(t) + ε_t

1. 趋势项 g(t)

  • 分段线性趋势:自动检测变点(Change Point),允许趋势在不同区间斜率变化
  • 逻辑斯蒂增长g(t) = C(t) / (1 + exp(-k·(t - m))),带饱和上限和变点
  • Laplace先验控制变点稀疏性

2. 季节性 s(t)

  • 使用傅里叶级数:s(t) = Σ[a_n·cos(2πnt/P) + b_n·sin(2πnt/P)]
  • 支持年/周/日多周期
  • N越大拟合越精细(一般年:N=10,周:N=3)

3. 节假日效应 h(t)

  • 用户自定义节假日列表,每个节假日作为独立特征(one-hot 或 前后窗口)
  • 适用于电商促销、春节、黑五等

优势

  • 自动处理缺失值与异常点
  • 鲁棒性强,对趋势变化适应快
  • 完全可解释(各成分可视化分离)
  • 仅需少量数据即可训练

局限:不适合高频交易、复杂多变量非线性关系。