文章链接:
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 所需时间序列的存储格式:
只需要用CSV 文件存储两列,第一列为时间序列的时间戳(ds ),第二列为时间序列的取值(y )。
prophet 所需时间序列的存储格式
通过prophet 的计算,可以计算出时间序列的预测值(yhat )、预测值的下界(yhat_lower )、预测值的上界(yhat_upper )。
prophet 的计算结果
Prophet 预测结果
深色线拟合了黑色圆点所代表的实际值,并且给出了未来6 个月的预测值,浅色区域表示了预测的合理范围yhat upper 和yhat lower 。
3、Prophet 的算法实现
Prophet 基于这种方法进行了必要的改进和优化。在实际生活和生产环节中,除了 季节项, 趋势项, 剩余项之外,通常还有 节假日的效应。所以,在Prophet 算法中,作者同时考虑了以上四项,即:
g(t)表示趋势项,表示时间序列在非周期上面的变化趋势;
s(t)表示周期项,或者称为季节项,一般以周者年为单位;
h(t)表示节假日项,表示在当天是否存在节假日;
Prophet 算法就是通过拟合这几项,最后把它们累加起来就得到时间序列的预测值。
4、趋势项g(t)
趋势项是Prophet的核心组件,它用于分析和拟合时间序列的非周期变化,提供了两种趋势模型: 饱和增长模型和 分段线性模型。
饱和增长模型不是无限上涨趋势的,当趋势达到一定的程度就会呈现饱和状态,饱和值随着时间动态变化;分段线性模型是不可限定趋势的,但是这两种模型都包含了不同程度的假设和调节光滑度的参数,以辅助优化模型。
其中:v表示模型承载量;r表示增长率;δ、γ表示适应度;a(t)表示t时刻前突变点发生变化的次数;d表示偏移量。
5、季节项s(t)
s (t)代表时间序列的周期性变化,可用于模拟周、月、年等各种周期变化趋势,由傅立叶级数表达,如式所示:
其中: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 模型的优缺点
优点:
- 可拓展:曲线拟合问题可以很轻松的引入季节和周期性的影响,可以应用于多种数据类型。
- 数据灵活:与ARIM模型不同,曲线拟合问题不需要数据等步长,所以不需要对数据进行一些特殊操作(如插值)。
- 速度快:相比于传统的训练模型,曲线拟合的速度更快,有助于数据迭代。
- 能够自动处理所研究序列中的缺失值和异常值,能够对时间序列的未来趋势进行自动分解和预测。
局限性:
- 无法做到rolling forecasting,prophet训练和模型是分开的,要想更新模型,必须重新训练。
- 模型过于简单,模型的表达能力比较简单。导致训练模型时under-fitting,也就是对于复杂的模式,常常无法学到,预测精度有所折扣。
- 长时间预测不可靠。
Original: https://blog.csdn.net/beiye_/article/details/123353123
Author: 白天数糖晚上数羊
Title: 时间序列预测——Prophet模型
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/627989/
转载文章受原作者版权保护。转载请注明原作者出处!