如何预测时间序列,包括R中的季节性因素

如何预测时间序列,包括R中的季节性因素,r,time-series,forecasting,R,Time Series,Forecasting,我有以下样本数据: library(data.table) dt <- data.table('time' = c(1:10), 'units'= c(89496264,81820040,80960072,109164545,96226255,96270421,95694992,117509717,105134778,0)) 库(data.table) dtAPI允许您轻松计算预测,使用一个加法模型,非线性趋势与年度、每周和每日季节性相匹配 引用上

我有以下样本数据:

library(data.table)
dt <- data.table('time' = c(1:10),
                    'units'= c(89496264,81820040,80960072,109164545,96226255,96270421,95694992,117509717,105134778,0))
库(data.table)
dtAPI允许您轻松计算预测,使用一个加法模型,非线性趋势与年度、每周和每日季节性相匹配

引用上述链接:

它最适用于具有强烈季节性影响的时间序列和几个季节的历史数据。Prophet对缺失数据和趋势变化具有鲁棒性,通常能够很好地处理异常值

install.packages('prophet')
图书馆(先知)
模型API允许您轻松计算预测,使用一个加法模型,非线性趋势与年度、每周和每日季节性相匹配

引用上述链接:

它最适用于具有强烈季节性影响的时间序列和几个季节的历史数据。Prophet对缺失数据和趋势变化具有鲁棒性,通常能够很好地处理异常值

install.packages('prophet')
图书馆(先知)

模型你是对的,你可以在98.4%下赌注,t=4*k存在季节性,它的值是+21108156。如果季节性假设为乘法而非加法,则可以得到98.5%的结果,即存在季节性,其值为+18.7%

这就是我如何进行的,不使用现成的软件包,这样你就可以问所有类似的问题

首先引入一个新的布尔变量
dt$seasure=(dt$time%%4)==0
,对于t=0,4,8,。。。和false(即=0),否则。然后,对于t=0,4,8,…,函数
x~a*季节+b
等于
a+b
,。。。和
b
其他位置。换句话说,
a
是季节性效应和非季节性效应之间的差异


线性回归
fit你是对的,你可以在98.4%的概率下打赌t=4*k存在季节性,它的值是+21108156。如果季节性假设为乘法而非加法,则可以得到98.5%的结果,即存在季节性,其值为+18.7%

这就是我如何进行的,不使用现成的软件包,这样你就可以问所有类似的问题

首先引入一个新的布尔变量
dt$seasure=(dt$time%%4)==0
,对于t=0,4,8,。。。和false(即=0),否则。然后,对于t=0,4,8,…,函数
x~a*季节+b
等于
a+b
,。。。和
b
其他位置。换句话说,
a
是季节性效应和非季节性效应之间的差异


线性回归
fit-prophet看起来不错。非常感谢。您知道您是否可以选择是否具有加性季节性效应或乘性季节性效应吗?是的,使用
季节性。模式
,请参见选择具有L-BFGS标准的最佳模型,ts分解为估计的2/3分量。总的来说,它不会是“最好”的模型,但可能比一些更简单的模型要好。我建议阅读引用的论文,我不确定,但我怀疑是否有。prophet看起来不错。非常感谢。您知道您是否可以选择是否具有加性季节性效应或乘性季节性效应吗?是的,使用
季节性。模式
,请参见选择具有L-BFGS标准的最佳模型,ts分解为估计的2/3分量。总的来说,它不会是“最好”的模型,但可能比一些更简单的模型要好。我建议阅读引用的论文,我不确定,但我怀疑是否有。
install.packages(‘prophet’)
library(prophet)
model <- prophet(dt) # see ?prophet for details, this builds the model (like auto.arima)
future <- make_future_dataframe(model, periods = 10) # creates the "future" data 
forecast <- predict(model, future) # predictions

tail(forecast)