前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >「经验」时间序列预测神器-Prophet『理论篇』

「经验」时间序列预测神器-Prophet『理论篇』

作者头像
小火龙说数据
发布于 2022-06-30 08:23:37
发布于 2022-06-30 08:23:37
3K0
举报
文章被收录于专栏:小火龙说数据小火龙说数据

预计阅读时间:8min

阅读建议:本文为工作中总结出来的经验,内容相对好理解,干货较多,建议「收藏」哦。

解决痛点:“还有一个月就春节了,老板希望预测春节的订单量,该如何预测呢?”本文以预测的价值为出发点,和大家分享不同场景所适用的预测方式,并着重介绍一种容易理解且精准度较高的预测模型 - Prophet。

01

预测在工作中的价值

不知是否有同学会有这样的疑问:“预测在数据分析中的定位是什么样?它能给业务带来的价值又是什么?”

首先,预测在数据分析中的定位是什么样?

数据分析的目的是更科学、更客观地对产品进行度量及洞察。一方面,解决的是对于产品现状的衡量,即「后验性分析」;另一方面,是对于业务未来的预期及指引,即「先验性分析」。而预测则是后者,它能够帮助业务看到未来可见时间段的业务状态。

其次,它能给业务带来的价值又是什么?

根据预测周期的长短,带来价值的侧重点是有差异的:

  • 短期「异动监控」:监控指标是否正常,即:归因分析发现问题。
  • 中期「目标制定」:指引业务指标KPI制定。
  • 长期「健康评估」:预估产品健康度情况。

02

什么是时间序列预测

这里我们说的预测指的是「时间序列预测」,时间序列预测是根据数据过去一段时间的状态,在满足「趋势一致」以及「不发生跳变」的前提下,预测未来一段时间的数据情况。

时间序列预测图

03

时间序列预测的常用方式

时间序列预测方式有很多,大体可以划分为三种类型:

时间序列预测常用方式

① 同环比

这种方式最为简单,根据同期值及近期权重进行拟合,适合于日常及节假日预测,附上之前应用过的公式,大家可以参考:

  • 日常预测值 = 上周同期值 × 近期权重;
  • 节假日预测值 = 前30日均值 × [(节假日系数×0.2 + 周期性系数×0.8) × 近期权重]。

「同环比」方式弊端

1、预测的精准度较差

2、仅适用于短期预测,对于中长期表现不佳

② 自回归系列

自回归(Auto Regression)为传统的时间序列,其中涵盖:ARMA、ARIMA、ARCH等模型。此种方式的统计学原理比较简单,所以在预测的场景中也是比较通用。

「自回归系列」方式弊端

1、仅适用于短期预测,对于中长期表现不佳

2、无法处理由于节假日、特殊时点(例如:双十一)等带来的变点问题

3、模型的解耦能力较差,无法分析出影响准确率的潜在因素

③ Prophet模型

基于传统时间序列的问题,Prophet模型的诞生,无疑是提出了另外一种解决方案,将预测问题转化为拟合问题。下面将和大家分享此种模型的原理,以及如何通过python代码进行实现。

04

Prophet是什么

Prophet是Facebook数据科学团队于2017年发布的开源预测软件包,其内容发表在《Forecasting at scale》论文中。目前可以通过Python和R进行实现,该模型可以通过简单的参数配置,实现高精准的时间序列预测。

Prophet预测效果图

05

Prophet适用场景

预测模型均有其适用的场景,Prophet也不例外,只有在合适的场景下,才能发挥模型本身的威力,具体适用场景如下:

  • 训练数据:拥有至少一个完整周期的数据,让模型完整学习规律。
  • 数据趋势:数据有一定正常的周期效应,例如:周末效应、季节效应等。
  • 跳变情况:明确可能发生跳变的时间点及窗口期,例如:双十一、国庆节等。
  • 缺失值符合预期:历史数据的缺失值和异常值保持在合理范围内。

06

Prophet优势

Prophet相比其他预测模型具有一定优势,主要体现在以下几个方向:

  • 精准度更高:Prophet预测精准度更高。下图为不同预测时间周期情况下,计算出来MAPE得分(平均绝对百分比误差,用于度量预测值与真实值的偏差程度,值越大差异越大),可见Prophet拟合效果相对较好。

预测模型误差(此图来源于百度)

  • 运行效率高:Prophet可采用基于L-BFGS方式(解决函数最优化问题手段,类似梯度下降)来拟合函数,模型收敛速度更快。
  • 解释能力强:Prophet可将模型成分分解,将整体趋势、年趋势、周趋势、节假日效应解耦开来,并通过可视化方式展现给用户。
  • 功能丰富:支持年、月、日、小时多粒度的分析与预测;支持周期效应、节假日效应等;对于缺失数据的处理较友好;支持输出置信区间,方便做异常点挖掘;支持根据正则化因子来调节欠拟合与过拟合;支持加性及乘性的趋势拟合等。
  • 应用简单:Python提供了类似sklearn包的风格,通过几行代码,完成训练、评估、验证、预测、存储。并且input只需提供两列字段,一列为ds,另一列为指标值y。

07

Prophet原理

前面提到,Prophet可将趋势项、周期项、节假日项解耦开来,因此该模型也是由这三者,加上噪声项组合而成,如下图:

Prophet公式

g(t):趋势项。用于拟合时间序列非周期性的趋势变化。例如:上升、下降趋势;

s(t):周期项。用于拟合周、月、季的周期性变化趋势;

h(t):节假日项。用于表示潜在的跳变点对预测的影响。例如:节假日、突发事件等;

ϵ(t):噪音项。用于表示未预测到的随机波动。

将各项拆开的优势非常明显,可以清晰的定位预测中的问题,通过Prophet解耦输出效果图如下:

Prophet解耦输出效果图

下面和大家详细介绍一下趋势项、周期项、节假日项的计算方式及注意事项。

1、 趋势项

数据的变化趋势,是模型的核心项,用于表示数据在一段时间的状态,按照何种形式增长或下降。根据趋势模式,可划分为「线性模型」和「非线性模型」,模型默认为线性模型,非线性模型采用逻辑回归方式进行拟合。这两种方式的适用场景有所差异。

  • 线性模型:适用于处于稳步上升或下降的业务场景。例如:处于成长期产品销量等。(附上公式及趋势图,这里暂不对公式做更详细的解释,感兴趣可以搜索一下)

线性模型公式

线性模型趋势图

  • 非线性模型:适用于数据值趋于饱和的业务场景。例如:全球GDP、总人口等。(附上公式及趋势图)

非线性模型公式

非线性模型趋势图

2、 周期项

在时间序列的预测中,周期项是避不开的一部分,周期包括但不限于:季度、月、周、日。这里可采用傅里叶级数的方式近似表示这一项。(附上公式)

周期项公式

3、 节假日项

除了常规的趋势和周期以外,在我们日常生活中,还会遇到节假日及特殊时点,这些节点会直接影响数据的变化程度,例如:双十一订单量会激增。节假日项,是Prophet相比其他模型的优势。

Prophet将节假日作为单独的模型,可以在模型中设定节假日影响的周期,例如:虽然春节只有7日,但是春运窗口则将近30日。(附上公式)

节假日项公式

总体来讲,Prophet是通过四个组件模型自加形成整体模型,并采用Stan的L-BFGS来进行模型拟合。

L-BFGS含义说明

L-BFGS用于解决无约束非线性规划问题,具有收敛速度快、内存开销少等优点,在机器学习各类算法中经常出现。类似SGD(随机梯度下降),但大多数情况下收敛更快。

以上就是本期的内容分享,希望能让你对Prophet模型有一个较为清晰的认知。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小火龙说数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于 Prophet 的时间序列预测
如果你还在为时间序列预测而苦恼,那就一起走进兴奋而又神奇的Prophet世界吧。
腾讯技术工程官方号
2018/01/30
4.7K0
基于 Prophet 的时间序列预测
「经验」时间序列预测神器-Prophet『实现篇』
阅读建议:本文为Prophet代码实现篇,如对模型原理有疑惑的同学,建议先看完「原理篇」后,再开始此篇的学习。
小火龙说数据
2022/06/30
1.5K0
「经验」时间序列预测神器-Prophet『实现篇』
手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)
对于任何业务而言,基于时间进行分析都是至关重要的。库存量应该保持在多少?你希望商店的客流量是多少?多少人会乘坐飞机旅游?类似这样待解决的问题都是重要的时间序列问题。
数据派THU
2018/07/30
4.6K0
手把手教你用Prophet快速进行时间序列预测(附Prophet和R代码)
使用Prophet预言家进行时间序列预测
prophet(读作 ˈprɒfɪt)这个英文单词的意思是先知,预言家(没错,就是天黑请睁眼的那位😋)。顾名思义,它能够预测未来。
lyhue1991
2023/11/27
7740
使用Prophet预言家进行时间序列预测
干货 | 深度多元时序模型在携程关键指标预测场景下的探索应用
doublering,携程高级算法工程师,关注自然语言处理、LLMs、时序预测等领域。
携程技术
2023/10/27
1.8K1
干货 | 深度多元时序模型在携程关键指标预测场景下的探索应用
时间序列预测神器Prophet【入门教程1】
Prophet是一种基于加法模型的时间序列预测工具,由Facebook的数据科学团队开发。它可以处理时间序列数据中的多种复杂性,包括趋势变化、季节性变化以及节假日效应等。
皮大大
2024/08/07
7940
深入剖析时序Prophet模型:工作原理与源码解析|得物技术
随着得物业务的快速发展,积累了大量的时序数据,这些数据对精细化运营,提升效率、降低成本有着重要作用。在得物的时序数据挖掘场景中,时序预测Prophet模型使用频繁,本文对Prophet的原理和源码进行深入分析,欢迎阅读和交流。
得物技术
2024/06/04
6660
深入剖析时序Prophet模型:工作原理与源码解析|得物技术
Python用Transformer、Prophet、RNN、LSTM、SARIMAX时间序列预测分析用电量、销售、交通事故数据
在数据驱动决策的时代,时间序列预测作为揭示数据时序规律的核心技术,已成为各行业解决预测需求的关键工具。从能源消耗趋势分析到公共安全事件预测,不同领域的数据特征对预测模型的适应性提出了差异化挑战。本文基于某咨询项目的实际需求,通过对比分析五种主流预测模型(SARIMAX、RNN、LSTM、Prophet、Transformer)在多类数据集上的表现,探讨模型选择逻辑与参数调优策略,为行业应用提供可落地的解决方案(点击文末“阅读原文”获取完整智能体、代码、数据、文档)。
拓端
2025/05/23
2310
Python用Transformer、Prophet、RNN、LSTM、SARIMAX时间序列预测分析用电量、销售、交通事故数据
R+python︱Facebook大规模时序预测『真』神器——Prophet(遍地代码图)
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/57419862
悟乙己
2019/05/27
3.1K0
回顾︱时间序列预测与分解有哪些模型?(一)
时序预测从不同角度看有不同分类。从实现原理的角度,可以分为传统统计学、机器学习(又分非深度学习和深度学习)。
悟乙己
2021/12/07
2.6K0
回顾︱时间序列预测与分解有哪些模型?(一)
python | prophet的案例实践:趋势检验、突变点检验等
5年前prophet刚出来的时候试用过R版本的prophet: R+python︱Facebook大规模时序预测『真』神器——Prophet(遍地代码图)
悟乙己
2022/09/01
2.7K0
python | prophet的案例实践:趋势检验、突变点检验等
干货 | 一个数据分析师眼中的数据预测与监控
束开亮,携程大市场部BI团队,负责数据分析与挖掘。同济应用数学硕士,金融数学方向,法国统计学工程师,主修风险管理与金融工程。
携程技术
2019/04/22
1.8K0
干货 | 一个数据分析师眼中的数据预测与监控
独家 | 手把手教你用Python的Prophet库进行时间序列预测
本文为大家介绍了如何在Python中使用由Facebook开发的Prophet库进行自动化的时间序列预测,以及如何评估一个由Prophet库所搭建的时间序列预测模型的性能。
数据派THU
2020/10/26
11.9K0
独家 | 手把手教你用Python的Prophet库进行时间序列预测
Prophet在R语言中进行时间序列数据预测
您将学习如何使用Prophet(在R中)解决一个常见问题:预测公司明年的每日订单。
拓端
2020/12/30
1.7K0
Prophet在R语言中进行时间序列数据预测
时间序列预测方法最全总结!
时间序列预测就是利用过去一段时间的数据来预测未来一段时间内的信息,包括连续型预测(数值预测,范围估计)与离散型预测(事件预测)等,具有非常高的商业价值。
Datawhale
2021/03/12
28.9K1
时间序列预测方法最全总结!
15种时间序列预测方法总结(包含多种方法代码实现)
在这篇文章中,我们将深入探讨时间序列预测的基本概念和方法。我们将首先介绍单元预测和多元预测的概念,然后详细介绍各种深度学习和传统机器学习方法如何应用于时间序列预测,包括循环神经网络(RNN)、一维卷积神经网络(1D-CNN)、Transformer、自回归模型(AR)、状态空间模型、支持向量机(SVM)和随机森林(RF)等。我们还会讨论这些方法在单元预测和多元预测中的适用性。
机器学习AI算法工程
2024/04/30
9.9K0
15种时间序列预测方法总结(包含多种方法代码实现)
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测
Prophet异常检测使用了Prophet时间序列预测。基本的Prophet模型是一个可分解的单变量时间序列模型,结合了趋势、季节性和节假日效应(点击文末“阅读原文”获取完整代码数据)。
拓端
2023/08/31
8790
PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测
python数据分析-时间序列(一)ARIMA、傅里叶、小波变换、Prophet方法2021.8.19
###############################################################
用户7138673
2022/09/22
1.3K0
python数据分析-时间序列(一)ARIMA、傅里叶、小波变换、Prophet方法2021.8.19
时间序列基本概念、任务、预测方法
作者:东哥起飞,来源:Python数据科学 本文开启时间序列系列的相关介绍,从零梳理时序概念、相关技术、和实战案例,欢迎订阅 👉「时间序列专栏」 跟踪全部内容。 本篇介绍时间序列的定义、任务、构成以及预测方法,主要是基本概念的介绍和理解。 时间序列定义 时间序列,通俗的字面含义为一系列历史时间的序列集合。比如2013年到2022年我国全国总人口数依次记录下来,就构成了一个序列长度为10的时间序列。 专业领域里,时间序列定义为一个随机过程,是按时间顺序排列的一组随机变量 ...X_1,X_2,..X_T...
Python数据科学
2023/03/08
3K0
时间序列基本概念、任务、预测方法
十大宝藏时序模型汇总。
时间序列建模在销量预测,天气预测,车流量预测,股票价格预测等问题中扮演着至关重要的角色,一般时间序列的问题可以表述为下面的形式
炼丹笔记
2021/08/06
2.7K0
十大宝藏时序模型汇总。
推荐阅读
相关推荐
基于 Prophet 的时间序列预测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档