暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Prophet在R语言中进行时间序列数据预测

拓端数据部落 2022-08-31
389

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


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


相关视频



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

数据准备与探索

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

\`select\`\`  date,  valuefrom modeanalytics.daily_ordersorder 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将自动适应每周和每年的季节性。

  • 我们的观察结果的均值和方差随时间增加。



点击标题查阅往期内容


PYTHON中用PROPHET模型对天气时间序列进行预测与异常检测


左右滑动查看更多


01

02

03

04




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逆转换。

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



点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《Prophet在R语言中进行时间序列数据预测》。


点击标题查阅往期内容

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列
R语言中的时间序列分析模型:ARIMA-ARCH GARCH模型分析股票价格
R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列
R语言中的时间序列分析模型:ARIMA-ARCH GARCH模型分析股票价格
R语言多元Copula GARCH 模型时间序列预测
python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
R语言中的copula GARCH模型拟合时间序列并模拟分析
matlab使用Copula仿真优化市场风险数据VaR分析
R语言多元Copula GARCH 模型时间序列预测
R语言Copula函数股市相关性建模:模拟Random Walk(随机游走)
R语言实现 Copula 算法建模依赖性案例分析报告
R语言ARMA-GARCH-COPULA模型和金融时间序列案例
R语言基于copula的贝叶斯分层混合模型的诊断准确性研究
R语言COPULA和金融时间序列案例
matlab使用Copula仿真优化市场风险数据VaR分析
matlab使用Copula仿真优化市场风险
R语言多元CopulaGARCH模型时间序列预测
R语言Copula的贝叶斯非参数MCMC估计
R语言COPULAS和金融时间序列
R语言乘法GARCH模型对高频交易数据进行波动性预测
R语言GARCH-DCC模型和DCC(MVT)建模估计
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
R语言时间序列GARCH模型分析股市波动率
R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测
使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模
R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析
R语言多元Copula GARCH 模型时间序列预测
R语言使用多元AR-GARCH模型衡量市场风险
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
R语言用Garch模型和回归模型对股票价格分析
GARCH(1,1),MA以及历史模拟法的VaR比较
matlab估计arma garch 条件均值和方差模型
R语言ARMA-GARCH-COPULA模型和金融时间序列案例



文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论