时间预测之Prophet

Prophet 是由 Facebook 开发的一种时间序列预测工具,它主要用于处理带有明显趋势和季节性模式的时间序列数据。Prophet 以其易用性和强大的功能在业界广受欢迎。下面详细解释 Prophet 的工作原理,特别是其趋势-季节性分解的方法,并通过具体数据举例说明。

Prophet 的工作原理

Prophet 模型将时间序列分解为三个主要组件:趋势(Trend)、季节性(Seasonality)和假日效应(Holiday Effects),加上残差项。其数学模型可以表示为:

y ( t ) = g ( t ) + s ( t ) + h ( t ) + ϵ t y(t) = g(t) + s(t) + h(t) + \epsilon_t y(t)=g(t)+s(t)+h(t)+ϵt

其中:

  • y ( t ) y(t) y(t) 是在时间 t t t 的观测值。
  • g ( t ) g(t) g(t) 是趋势函数,表示长期变化。
  • s ( t ) s(t) s(t) 是季节性函数,表示周期性变化。
  • h ( t ) h(t) h(t) 是假日效应,表示特殊节假日对时间序列的影响。
  • ϵ t \epsilon_t ϵt 是残差,表示随机噪声。
趋势(Trend)

Prophet 支持两种趋势模型:

  1. 线性趋势:适用于线性增长或下降的情况。
  2. 逻辑斯蒂增长趋势:适用于增长有上限的情况。

线性趋势模型可以表示为:

g ( t ) = k t + m g(t) = kt + m g(t)=kt+m

其中 k k k 是增长速率, m m m 是初始值。

逻辑斯蒂增长趋势模型可以表示为:

g ( t ) = C 1 + e − k ( t − t 0 ) g(t) = \frac{C}{1 + e^{-k(t-t_0)}} g(t)=1+ek(tt0)C

其中 C C C 是增长的上限, k k k 是增长速率, t 0 t_0 t0 是时间中点。

季节性(Seasonality)

Prophet 使用傅里叶级数来建模季节性,季节性部分可以表示为:

s ( t ) = ∑ n = 1 N ( a n cos ⁡ ( 2 π n t P ) + b n sin ⁡ ( 2 π n t P ) ) s(t) = \sum_{n=1}^{N} \left( a_n \cos\left(\frac{2\pi nt}{P}\right) + b_n \sin\left(\frac{2\pi nt}{P}\right) \right) s(t)=n=1N(ancos(P2πnt)+bnsin(P2πnt))

其中 P P P 是周期, N N N 是傅里叶级数的阶数, a n a_n an b n b_n bn 是傅里叶系数。

假日效应(Holiday Effects)

假日效应通过添加特定日期的影响来建模,例如,销售额在黑色星期五和圣诞节期间可能会有显著的上升。

具体数据举例

假设我们有一个电子商务网站的月度销售数据(单位:千元),如下所示:

  • 2019年1月:120
  • 2019年2月:130
  • 2019年3月:150
  • 2019年4月:170
  • 2019年5月:160
  • 2019年6月:180
  • 2019年7月:190
  • 2019年8月:200
  • 2019年9月:210
  • 2019年10月:220
  • 2019年11月:230
  • 2019年12月:250
  • 2020年1月:130
  • 2020年2月:140
  • 2020年3月:160
  • 2020年4月:180
  • 2020年5月:170
  • 2020年6月:190
  • 2020年7月:200
  • 2020年8月:210
  • 2020年9月:220
  • 2020年10月:230
  • 2020年11月:240
  • 2020年12月:260

使用 Prophet 模型进行预测时,我们首先需要对这些数据进行趋势和季节性分解。

  1. 趋势分解
    通过拟合趋势模型,Prophet 可能会识别出销售额的总体增长趋势,例如每年增长约 10-15 千元。

  2. 季节性分解
    通过傅里叶级数,Prophet 会识别出季节性模式,例如,年初(1月到3月)和年末(11月和12月)可能是销售高峰期,而年中(4月到10月)相对平稳。

  3. 假日效应
    如果数据中包含重要节假日(如黑色星期五、圣诞节等),Prophet 会识别并添加这些假日效应对预测的影响。

通过这些分解,Prophet 可以更准确地预测未来的销售额。例如,预测2021年的月度销售数据,Prophet 将结合历史趋势、季节性模式和假日效应来生成预测值。

总结

Prophet 通过将时间序列分解为趋势、季节性和假日效应,再加上随机残差,来进行准确的时间序列预测。其灵活性和易用性使其成为处理具有复杂模式的时间序列数据的强大工具。通过具体的数据分解和预测,Prophet 展示了其在商业应用中的巨大潜力。

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值