拓端tecdat|Prophet在R语言中进行时间序列数据预测
原文链接: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中之前,将其作图并检查数据。
- 2017年5月左右,趋势轨迹发生了明显变化。默认情况下,Prophet自动检测到此类“ 趋势变化点 ”,并允许趋势进行适当调整。
- 每周和每年都有明显的季节性。如果时间序列长于两个周期以上,则Prophet将自动适应每周和每年的季节性。
- 我们的观察结果的均值和方差随时间增加。
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语言中进行时间序列数据预测相关推荐
- r语言导出文件为xlxs_R语言数据导出到Excel表格-如何将R语言中的表格数据输出为Excel文件...
r语言怎么将values中的数据导出为excel 直接新建一个txt文件,打开,然后按ctrl A,复制excel表格中数据,直接粘贴至该打开的txt文件里即可.或者打开excel后,另存为" ...
- R语言中读取excel数据的常用方式有哪些?
R语言中读取excel数据的常用方式有哪些? 目录 R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R ...
- R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势
R语言ggplot2可视化时间序列数据并添加稳定趋势线识别数据的稳定趋势 目录 R语言ggplot2可视化时间序列数据并添
- R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot)
R语言ggplot2可视化时间序列数据:ggplot2可视化在时间轴上添加按月的箱图(boxplot) 目录
- R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注、特殊区域标注
R语言ggplot2可视化时间序列数据并突出标注重要时间点数据实战:特殊节点标签标注.特殊区域标注 目录
- R语言中的横向数据合并merge及纵向数据合并rbind的使用
转载自:https://www.cnblogs.com/awishfullyway/p/6677006.html 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用 ...
- r语言 将表格导出为csv_如何将R语言中表格数据输出为Excel文件.pdf
如何将R 语言中的表格数据输出为Excel 文件 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com /u/Bearjazz 平台的开放性使得R 语言具有了丰富的运算 ...
- r语言中的或怎么表示什么不同_R经典入门 之 R语言的基本原理与概念 -- 200430
一.基本原理 R是一种解释型语言,输入的命令可以直接被执行,不同于C等编译语言需要构成完整的程序才能运行. R的语法非常简单和直观.合法的R函数总是带有圆括号的形式,即使括号内没有内容(如,ls()) ...
- 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法
这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...
- R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口
最近我们被客户要求撰写关于信用风险敞口的研究报告,包括一些图形和统计输出. 在之前的课堂上,我们已经看到了如何可视化多元回归模型(带有两个连续的解释变量).在此,目标是使用一些协变量(例如,驾驶员的年 ...
最新文章
- 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
- 【STM32】MDK5打开MDK4项目工程时出现的不兼容及解决方法
- 设置联想电脑双屏显示(备用待查)
- 利用 Azure Functions 实现无服务器体系结构
- 知识贴!单片机C语言编程之.H文件与.C文件的关系
- leetcode1504. 统计全 1 子矩形(动态规划)
- 批量裁剪GIS数据(包含GDB,MDB,Shp)
- 怎么发现RAC环境中#39;library cache pin#39;等待事件的堵塞者(Blocker)?
- java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...
- 解决h264bitstream的一个bug
- Spring AOP注解
- Dxg——Arduino 开发笔记整理分类合集【所有的相关记录,都整理在此】
- Qt各版本官方下载地址
- idea一个工作空间打开多个项目
- 4094. Spiral matrix
- glew glfw opengl 之间的关系
- php个人博客项目实训报告,PHP个人博客项目------切切歆语博客
- 计算机会考程序设计循环语句知识点,算法与程序设计会考复习知识点
- 转载:中国部分酱香型白酒名录
- SOT23-6封装 小封装 超精简外围PD Sink端取电协议芯片
热门文章
- 【车道线检测与寻迹】2月17日 车道线检测carry边缘检测+Hough哈夫变换法
- ansi-html Uncontrolled Resource Consumption in ansi-html报错解决
- 一篇文章掌握MySQL事务的四大特性
- Mysql优化(出自官方文档) - 第三篇
- Kafka数据迁移MaxCompute最佳实践
- Redis字符串类型的操作
- EF中CodeFirst中实体变化的处理方式
- 未来:互联网+数字经济,智慧零售到底智慧在哪儿?
- vue $emit 父组件与子组件之间的通信(父组件向子组件传参)
- RESTFeel: 一个企业级的API管理测试平台。RESTFeel帮助你设计、开发、测试您的API...