R次系列频率

时间:2015-03-31 12:45:40

标签: r time-series frequency

我有一个时间序列数据集,包含374天的数据点(每天1个数据点)。我很难理解ts函数中的频率参数,所以我把它留空了:

ts_0615391206 <- ts(demand_rev_0615391206$estimated_demand,
                    start=as.Date(min(demand_rev_0615391206$date),format = "d%/m%/Y%"),
                    end=as.Date(max(demand_rev_0615391206$date),format = "d%/m%/Y%"),
                    #frequency = 1
                    ) 

plot.ts(ts_0615391206) enter image description here 但是,当我尝试使用以下方法进行分解时:

ts_0615391206_components <- decompose(ts_0615391206)

我收到错误:

Error in decompose(ts_0615391206) : 
  time series has no or less than 2 periods

我如何确定数据中有多少个时间段,从而决定参数&#34; frequency&#34;价值应该是?

> dput(head(ts_0615391206))
c(2.71, 2.47, 3.86, 3.61, 5.78, 5.59)
> 
> str(ts_0615391206)
 Time-Series [1:194] from 16125 to 16318: 2.71 2.47 3.86 3.61 5.78 5.59 3.28 3.4 3.34 3.68 ...

4 个答案:

答案 0 :(得分:0)

根据文档?ts

  

...当数据被采样时,可以使用 7的值作为频率   每日,自然时间段为一周,或数据为12   每月抽样,自然时间为一年。值4和   假设在(例如)印刷方法中暗示季度和   每月系列。

尝试设置frequency = 7

答案 1 :(得分:0)

decompose() R包中的stats函数将给定的时间序列分解为趋势,季节性组件和提醒部分。季节性成分是严格的周期性时间序列,期间长度等于时间序列的frequency。例如,如果您设置frequency = m,则decompose()函数构建分解哪个季节性组件的周期 m 。 如果 m 为整数, m &gt;,则decompose()函数有效。如图1所示,时间序列的长度大于或等于2 m 。 帮助页面?decompose指出时间序列应“覆盖整数个完整句点”,以便该功能正常运行。因此,如果序列长度是 m 的倍数可能会更好。

您的数据没有明确的周期性。可能this discussion对您有用,因为它包含Rob Hyndman的R脚本以显示系列中的周期性。

答案 2 :(得分:0)

如果您每天都有数据,那么频率是一年中365天的365天,因为它包含频率定义中一年中的365个条目。

当您尝试使用以下方法分解时:

ts_0615391206_components <- decompose(ts_0615391206)

您遇到错误:

Error in decompose(ts_0615391206) : 
time series has no or less than 2 periods

因为至少需要两个时间序列(即两年数据)来训练模型 否则会引发错误

答案 3 :(得分:0)

ts_06153912061 <-ts(ts_0615391206,开始= c(1999,1),频率= 365)每天

ts_06153912061 <-ts(ts_0615391206,开始= c(1999,1),频率= 52)每周

ts_06153912061 <-ts(ts_0615391206,开始= c(1999,1),频率= 12)每月一次

ts_06153912061 <-ts(ts_0615391206,开始= c(1999,1),频率= 4)每季度

ts_06153912061 <-ts(ts_0615391206,开始= c(1999,1),频率= 1)每年或每年