我是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
我做错了什么?
答案 0 :(得分:3)
当您使用frequency = 24*365
时,您表示您希望时间单位为年。由于您的数据少于两个月,因此您没有2个期间(年)。尝试使用天数作为基本单位 - 即尝试frequency = 24
答案 1 :(得分:3)
我认为你的意思是将频率设置为24,然后预测小时数据。如果你想确定多个效果,即每小时,每天,每周,每月等,那么你可以在预测包中探索可以检测多个季节性的tbats()函数,或者你也可以使用傅立叶模型来提取不同的效果潜在的周期性。
包括与使用傅立叶预测相关的代码:
http://robjhyndman.com/hyndsight/tbats-with-regressors/
有关如何设置频率的信息: