时间序列预测——Prophet模型

文章链接:

时间序列预测——Prophet模型

1、Propht模型概述

Prophet 模型是Facebook于2017年发布开源的时间序列预测框架。Prophet适用于 各种具有潜在特殊特征的预测问题包括广泛的业务时间序列问题,并且其对时间序列 趋势变化点的检测季节性节假日以及 突发事件具有更好的拟合效果。

Prophet 模型内部由循环中的分析师与自动化两部分构成一个循环体系。 Prophet的预测过程是根据预测问题建立时间序列模型,对历史数据进行仿真,评估模型的效果,根据出现的问题,进一步进行调整和建模,最终以可视化方式反馈整个预测结果。

Prophet 模型循环结构图

Prophet 模型是一个加法回归模型,它由三个核心部分 trend(趋势项)seasonality(季节项)holidays(假期项)构成。

Prophet 模型 基本组成公式: y (t)=g(t)+s(t)+h(t)+ ε t

2、Prophet 的算法原理

时间序列预测——Prophet模型

常见的时间序列场景

黑色表示原始的时间序列散点;深蓝色的线表示使用时间序列来拟合所得到的取值;浅蓝色的线表示时间序列的一个置信区间,也就是所谓的合理的上界和下界。

prophet 工作机制:

  1. 输入已知的时间序列的时间戳和相应的值
  2. 输入需要预测的时间序列的长度
  3. 输出未来的时间序列走势
  4. 输出结果可以提供必要的统计指针,包括拟合曲线、上界、下界等

prophet 所需时间序列的存储格式:

只需要用CSV 文件存储两列,第一列为时间序列的时间戳(ds ),第二列为时间序列的取值(y )。

时间序列预测——Prophet模型

prophet 所需时间序列的存储格式

通过prophet 的计算,可以计算出时间序列的预测值(yhat )、预测值的下界(yhat_lower )、预测值的上界(yhat_upper )。

prophet 的计算结果

Prophet 预测结果

深色线拟合了黑色圆点所代表的实际值,并且给出了未来6 个月的预测值,浅色区域表示了预测的合理范围yhat upper 和yhat lower 。

3、Prophet 的算法实现

时间序列预测——Prophet模型

时间序列预测——Prophet模型

时间序列预测——Prophet模型

Prophet 基于这种方法进行了必要的改进和优化。在实际生活和生产环节中,除了 季节项趋势项剩余项之外,通常还有 节假日的效应。所以,在Prophet 算法中,作者同时考虑了以上四项,即:

时间序列预测——Prophet模型

g(t)表示趋势项,表示时间序列在非周期上面的变化趋势;

s(t)表示周期项,或者称为季节项,一般以周者年为单位;

h(t)表示节假日项,表示在当天是否存在节假日;

时间序列预测——Prophet模型

Prophet 算法就是通过拟合这几项,最后把它们累加起来就得到时间序列的预测值。

4、趋势项g(t)

趋势项是Prophet的核心组件,它用于分析和拟合时间序列的非周期变化,提供了两种趋势模型: 饱和增长模型分段线性模型

饱和增长模型不是无限上涨趋势的,当趋势达到一定的程度就会呈现饱和状态,饱和值随着时间动态变化;分段线性模型是不可限定趋势的,但是这两种模型都包含了不同程度的假设和调节光滑度的参数,以辅助优化模型。

时间序列预测——Prophet模型

时间序列预测——Prophet模型

其中:v表示模型承载量;r表示增长率;δ、γ表示适应度;a(t)表示t时刻前突变点发生变化的次数;d表示偏移量。

5、季节项s(t)

s (t)代表时间序列的周期性变化,可用于模拟周、月、年等各种周期变化趋势,由傅立叶级数表达,如式所示:

时间序列预测——Prophet模型

其中:N表示模型中使用该周期的个数;T表示期望时间序列的周期长度;2n表示拟合季节性需要估计的参数个数。

N 的设定需要结合T进行考虑,对于年的周期性,设定T=365.25,N为10;对于每周的季节性,T设置为7,N则设置为3,N越大,拟合复杂的季节性越好。

6、假期项h(t)

节假日和重要事件会对时间序列预测产生较大的影响,这些作用通常是可以预测的,将这些影响因素作为先验知识纳入模型,对模型准确率的提升具有主要意义。

h (t)表示非周期性的不规律的假期影响。模型通过自定义假期列表实现节假日或突发事件场景下的预测。

模型原理:h(t)=Z(t)k

其中:Z(t)为指示函数;k 表示节假日的影响范围。

****

误差项: εt表示模型中未反映的噪声部分并假设噪声因子服从正态分布。

8、Prophet 模型的优缺点

优点:

  1. 可拓展:曲线拟合问题可以很轻松的引入季节和周期性的影响,可以应用于多种数据类型。
  2. 数据灵活:与ARIM模型不同,曲线拟合问题不需要数据等步长,所以不需要对数据进行一些特殊操作(如插值)。
  3. 速度快:相比于传统的训练模型,曲线拟合的速度更快,有助于数据迭代。
  4. 能够自动处理所研究序列中的缺失值和异常值,能够对时间序列的未来趋势进行自动分解和预测。

局限性:

  1. 无法做到rolling forecasting,prophet训练和模型是分开的,要想更新模型,必须重新训练。
  2. 模型过于简单,模型的表达能力比较简单。导致训练模型时under-fitting,也就是对于复杂的模式,常常无法学到,预测精度有所折扣。
  3. 长时间预测不可靠。

Original: https://blog.csdn.net/beiye_/article/details/123353123
Author: 白天数糖晚上数羊
Title: 时间序列预测——Prophet模型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/627989/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球