0. 前言
Prophet是由facebook开发的开源时间序列预测程序,擅长处理具有季节性特征大规模商业时间序列数据。本文主要介绍了Prophet模型的设计原理,并与经典的时间序列模型ARIMA进行了对比。
1. Prophet模型原理
Prophet模型把一个时间序列看做由3种主要成分组成:趋势项、季节项、假期项。
其中趋势项g(t)模拟了时间序列的非周期变化,季节项s(t)模拟了时间序列的周期性变化,假期项h(t)模拟了假期或者其他突发事件的影响,Ɛt为误差项。
1.1 趋势项
趋势项主要说明了数据的变化趋势,Prophet算法中主要运用了两种趋势项模型,饱和式增长模型与分段线性模型。
1.1.1 饱和式增长模型
最基本的饱和式增长模型表示为:
其中,C代表承载能力,k代表增长率,m代表偏移量。该模型并不能完全反应数据特性,要对其进行改造。
首先,模型的承载能力不一定为常数,比如说访问互联网的人口是随时间提高的。因此C可以替换为C(t)。同样的,成长率也不一定为常数,Prophet算法通过设置变点来拟合模型,假设在时间sj,j=1,2,3,...,S设置变点,斜率变化通过δ ϵ ℝS