原文链接:http://tecdat.cn/?p=7327

原文出处:拓端数据部落公众号

您将学习如何使用Prophet(在R中)解决一个常见问题:预测公司明年的每日订单。

数据准备与探索

Prophet最适合每日数据以及至少一年的历史数据。 我们将使用SQL处理每天要预测的数据:

`select
``  date,value
from modeanalytics.daily_orders
order by date`

我们可以将SQL查询结果集通过管道传递R数据框对象中。首先,将您的SQL查询重命名为Daily Orders。然后,在R 中,我们可以使用以下语句将查询结果集传递到数据帧df中:

df <- datasets[["Daily Orders"]]

为了快速了解您的数据框包含多少个观测值,可以运行以下语句:

#
dim(df)

Prophet输入DataFrame中有两列:分别包含日期和数值。

 str(df)

在此示例中,您将需要进行一些手动的日期格式转换:

 df <- mutate (
df,
date = ymd_hms(date) #
)

现在您已经准备好要与Prophet一起使用的数据,在将数据输入到Prophet中之前,将其作图并检查数据。

  1. 2017年5月左右,趋势轨迹发生了明显变化。默认情况下,Prophet自动检测到此类“ 趋势变化点 ”,并允许趋势进行适当调整。
  2. 每周和每年都有明显的季节性。如果时间序列长于两个周期以上,则Prophet将自动适应每周和每年的季节性。
  3. 我们的观察结果的均值和方差随时间增加。

Box-Cox变换

通常在预测中,您会明确选择一种特定类型的幂变换,以将其应用于数据以消除噪声,然后再将数据输入到预测模型中(例如,对数变换或平方根变换等)。但是,有时可能难以确定哪种变换适合您的数据。

Box-Cox变换是一种数据变换,用于评估一组Lambda系数(λ)并选择可实现最佳正态性近似值的值。

如果我们将新转换的数据与未转换的数据一起绘制,则可以看到Box-Cox转换能够消除随着时间变化而观察到增加的方差:

预测

使用Prophet通过Box-Cox转换的数据集拟合模型后,现在就可以开始对未来日期进行预测。 
现在,我们可以使用该predict()函数对未来数据帧中的每一行进行预测。

forecast <- predict(m, future)

此时,Prophet将创建一个预测变量的新数据框,其中包含名为的列下的未来日期的预测值yhat

plot(m, forecast)

在我们的示例中,我们的预测如下所示:

如果要可视化各个预测成分,则可以使用plot_components

预测和成分可视化显示,Prophet能够准确地建模数据中的潜在趋势,同时还可以精确地建模每周和每年的季节性(例如,周末和节假日的订单量较低)。

逆Box-Cox变换

由于Prophet用于Box-Cox转换后的数据,因此您需要将预测值转换回其原始单位。要将新的预测值转换回其原始单位,您将需要执行Box-Cox逆转换。

现在,您已将预测值转换回其原始单位,现在可以将预测值与历史值一起可视化:


最受欢迎的见解

1.在python中使用lstm和pytorch进行时间序列预测

2.python中利用长短期记忆模型lstm进行时间序列预测分析

3.使用r语言进行时间序列(arima,指数平滑)分析

4.r语言多元copula-garch-模型时间序列预测

5.r语言copulas和金融时间序列案例

6.使用r语言随机波动模型sv处理时间序列中的随机波动

7.r语言时间序列tar阈值自回归模型

8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

9.python3用arima模型进行时间序列预测

拓端tecdat|Prophet在R语言中进行时间序列数据预测相关推荐

  1. r语言导出文件为xlxs_R语言数据导出到Excel表格-如何将R语言中的表格数据输出为Excel文件...

    r语言怎么将values中的数据导出为excel 直接新建一个txt文件,打开,然后按ctrl A,复制excel表格中数据,直接粘贴至该打开的txt文件里即可.或者打开excel后,另存为" ...

  2. R语言中读取excel数据的常用方式有哪些?

    R语言中读取excel数据的常用方式有哪些? 目录 R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R ...

  3. R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势

    R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势 目录 R语言ggplot2可视化时间序列数据并添

  4. R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)

    R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot) 目录

  5. R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注、特殊区域标注

    R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注.特殊区域标注 目录

  6. R语言中的横向数据合并merge及纵向数据合并rbind的使用

    转载自:https://www.cnblogs.com/awishfullyway/p/6677006.html 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用 ...

  7. r语言 将表格导出为csv_如何将R语言中表格数据输出为Excel文件.pdf

    如何将R 语言中的表格数据输出为Excel 文件 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com /u/Bearjazz 平台的开放性使得R 语言具有了丰富的运算 ...

  8. r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430

    一.基本原理 R是一种解释型语言,输入的命令可以直接被执行,不同于C等编译语言需要构成完整的程序才能运行. R的语法非常简单和直观.合法的R函数总是带有圆括号的形式,即使括号内没有内容(如,ls()) ...

  9. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  10. R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口

    最近我们被客户要求撰写关于信用风险敞口的研究报告,包括一些图形和统计输出. 在之前的课堂上,我们已经看到了如何可视化多元回归模型(带有两个连续的解释变量).在此,目标是使用一些协变量(例如,驾驶员的年 ...

最新文章

  1. 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
  2. 【STM32】MDK5打开MDK4项目工程时出现的不兼容及解决方法
  3. 设置联想电脑双屏显示(备用待查)
  4. 利用 Azure Functions 实现无服务器体系结构
  5. 知识贴!单片机C语言编程之.H文件与.C文件的关系
  6. leetcode1504. 统计全 1 子矩形(动态规划)
  7. 批量裁剪GIS数据(包含GDB,MDB,Shp)
  8. 怎么发现RAC环境中#39;library cache pin#39;等待事件的堵塞者(Blocker)?
  9. java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...
  10. 解决h264bitstream的一个bug
  11. Spring AOP注解
  12. Dxg——Arduino 开发笔记整理分类合集【所有的相关记录,都整理在此】
  13. Qt各版本官方下载地址
  14. idea一个工作空间打开多个项目
  15. 4094. Spiral matrix
  16. glew glfw opengl 之间的关系
  17. php个人博客项目实训报告,PHP个人博客项目------切切歆语博客
  18. 计算机会考程序设计循环语句知识点,算法与程序设计会考复习知识点
  19. 转载:中国部分酱香型白酒名录
  20. SOT23-6封装 小封装 超精简外围PD Sink端取电协议芯片

热门文章

  1. 【车道线检测与寻迹】2月17日 车道线检测carry边缘检测+Hough哈夫变换法
  2. ansi-html Uncontrolled Resource Consumption in ansi-html报错解决
  3. 一篇文章掌握MySQL事务的四大特性
  4. Mysql优化(出自官方文档) - 第三篇
  5. Kafka数据迁移MaxCompute最佳实践
  6. Redis字符串类型的操作
  7. EF中CodeFirst中实体变化的处理方式
  8. 未来:互联网+数字经济,智慧零售到底智慧在哪儿?
  9. vue $emit 父组件与子组件之间的通信(父组件向子组件传参)
  10. RESTFeel: 一个企业级的API管理测试平台。RESTFeel帮助你设计、开发、测试您的API...