【读论文】prophet
🗓 2019年10月20日 📁 文章归类: 0x00_读论文
版权声明:本文作者是郭飞。转载随意,标明原文链接即可。
原文链接:https://www.guofei.site/2019/10/20/prophet.html
- Code: https://facebook.github.io/prophet/
- Prophet paper: Sean J. Taylor, Benjamin Letham (2018) Forecasting at scale. The American Statistician 72(1):37-45 (https://facebook.github.io/prophet/).
- 镜像地址 pdf
前言
时间序列预测可以用于 capacity planning, goal setting, and anomaly detection,所以挺重要,这篇论文提出了一个模型。
business forecast有两种主要方法
completely automatic forecasting techniques
缺点是不灵活,且不能加入专家知识。analysts
往往缺乏 series forecasting 方面的知识
正文
核心公式还是加法公式
- g是趋势性
- s是周期性(周、年等)
- h是holiday,特点是不规律,可能持续一天或数天
模型优点
- Flexibility:可以轻松调整周期和趋势
- 不需要均匀采样(对比ARIMA)
- 拟合较快
- 每个参数都有意义,都可理解
3.1 趋势项
3.1.1 Nonlinear, Saturating Growth
模型进行如下改进:
capacity C 是变化的(例如FaceBook的用户数量,上限是网民人数,但网民人数在变化)替换为
增长率k也是变化的。原文用了3个式子去描述,就不摘抄了。描述一下就是,增长率是分段的,然后为了函数连续,m也需要分段进行调整。
3.1.2 Linear Trend with Changepoints
就是一个线性模型 ,然后用上面写的方法进行分段。
3.1.3 寻找分割点
上文涉及到分割点,如何计算呢:
- 分析师根据经验去定义。
- 按月按年等,等分
- 随机选取分割间隔,分割间隔服从拉普拉斯分布
3.2 Seasonality
P = 365.25 for yearly data or P = 7 for weekly data
先定义一个N,然后拟合 (共2N个)
可以使用AIC准则来计算N
3.3 Holidays and Events
For each holiday i, let be the set of past and future dates for that holiday. 例如,用1代表圣诞节,2代表感恩节…,那么就是圣诞节集合,是感恩节集合。
如果总共L种节日,那么是L阶向量
原文没写太清楚,但应该是的各元素加权和,权重就是待解参数。
3.4 Model Fitting
周期项和节日项产生了多维feature,类似多维回归,优化算法选择L-BFGS
3.5 分析师的作用
- Capacities
- Changepoints
- seasonality
- Holidays
- smoothing parameter
我的理解
- 整个模型实际上还是时间序列分析中的加法模型,
- 加法每一项都做了巧妙但不难的设计,保证一定的复杂度的同时,可解释性、可操作性都极强。
- 很漂亮的模型。
您的支持将鼓励我继续创作!
