使用R分解时间序列

时间:2016-12-09 00:41:41

标签: r time-series forecasting

我是R的新手。

我要做的是分解时间序列,以小时分辨率给出。

我的数据如下:

Time    traffic
6/7/2005 7:00   56718587433
6/7/2005 8:00   76456162968
6/7/2005 9:00   82534038485
6/7/2005 10:00  88796995092

 ...

7/28/2005 10:00 51528036132
7/28/2005 11:00 69610584123
7/28/2005 12:00 76364975533
7/28/2005 13:00 81281257078

为了将我的数据分解为趋势,季节性和静态组件,我就是这样做的:

library(xts)
library(forecast)
data<-read.csv("my_file.csv")
data<-ts(data[,2],frequency = 24*365, start=c(2005,6,7,7))
decompose(data)

但这是我得到的错误:

Error in decompose(data): time series has no or less than 2 period

我做错了什么?

2 个答案:

答案 0 :(得分:3)

当您使用frequency = 24*365时,您表示您希望时间单位为年。由于您的数据少于两个月,因此您没有2个期间(年)。尝试使用天数作为基本单位 - 即尝试frequency = 24

答案 1 :(得分:3)

我认为你的意思是将频率设置为24,然后预测小时数据。如果你想确定多个效果,即每小时,每天,每周,每月等,那么你可以在预测包中探索可以检测多个季节性的tbats()函数,或者你也可以使用傅立叶模型来提取不同的效果潜在的周期性。

包括与使用傅立叶预测相关的代码:

http://robjhyndman.com/hyndsight/tbats-with-regressors/

有关如何设置频率的信息:

http://robjhyndman.com/hyndsight/seasonal-periods/