目录
1. 简介
Prophet是FaceBook开源的时序框架,目前支持R语言和python语言。托管在github上。
Prophet的原理是分析各种时间序列特征:周期性、趋势性、节假日效应,以及部分异常值。Prophet充分的将业务背景知识和统计知识融合起来,它让我们可以用简单直观的参数进行高精度的时间序列预测,并且支持自定义季节和节假日的影响。
趋势性方面,它支持加入变化点,实现分段线性拟合;周期方面,它使用傅里叶级数(Fourier series)来建立周期模型(sin+cos);在节假和突发事件方面,用户可以通过表的方式指定节假日,及其前后相关的N天。可将Prophet视为一种针对时序的集成解决方案。
时间序列模型可分解为三个主要组成部分:趋势,季节性和节假日。它们按如下公式组合:
- g(t):用于拟合时间序列中的分段线性增长或逻辑增长等非周期变化。
- s(t):周期变化(如:每周/每年的季节性)。
- h(t):非规律性的节假日效应(用户造成)。
- et:误差项用来反映未在模型中体现的异常变动。
事实上,这是generalized additive model(GAM)模型的特例,但我们这里只用到了时间作为拟合的参数。
2. 适用条件
并非所有的预测问题都可以通过同一种程序(procedure)解决。Prophet 是为我们在 Facebook 所遇到的业务预测任务而优化的,这些任务通常具有以下特点:
- 有至少几个月(最好是一年)的每小时、每天或每周观察的历史数据;
- 有多种人类规模级别的较强的季节性趋势:每周的一些天和每年的一些时间;
- 有事先知道的以不定期的间隔发生的重要节假日(比如国庆节)。
- 缺失的历史数据或较大的异常数据的数量在合理范围内;
- 有历史趋势的变化;
- 对于数据中蕴含的非线性增长的趋势都有一个自然极限或饱和状态。
3. 安装教程
windows环境
- Python 3.5或更高版本(推荐使用anaconda)
- 更新Microsoft .NET Framework到4.5.1以上版本(C++ 编译器需要)
- 安装C++编译器Visual C++ Build Tools2015(在安装 PyStan前需要安装C++编译器)
- 安装 pystan库(pip install pystan)
- 安装fbprophet库(conda install -c conda-forge fbprophet)
Linux环境
在Ubuntu系统中可通过以下命令安装prophet:
$ sudo apt-get install fbprophet
4. 使用详解
时间序列预测其他方法: GBDT
5. 参考内容
(1)Prophet官方文档