每日季节性读取每日数据

时间:2017-05-30 11:56:33

标签: r

我每日数据的季节性成分从2017-03-01到2017-05-29不等。我想在R中进行季节性分解。我的代码如下。

ser = ts(series[,2], frequency=7, start=c(2017,1,1 ))
plot(decompose(ser))

我得到如下图表。 enter image description here

但图中的X轴错误。我怎样才能纠正它??

3 个答案:

答案 0 :(得分:0)

我认为你的频率是错误的。此外,如果您的数据在2017年的第三天开始,您就会错误地开始。试试这个:

ser = ts(series[,2], frequency = 365.25, start = c(2017,3)) #Third day of 2017

频率= 7并不是真正可以解释的。例如,频率= 12表示您每个月都有数据。在这种情况下,您已获得每日数据,因此频率= 365.25

答案 1 :(得分:0)

它没有正确,因为您没有正确表达参数frequency

阅读函数ts()的帮助,您可以看到:

频率每单位时间的观察次数。

所以你可以尝试使用这段代码:

ser = ts(series[,2], frequency=365, start=c(2017,1))
plot(decompose(ser))

因为是每日数据,所以每年都有365次观察。 验证它是否是正确的解决方案

答案 2 :(得分:0)

R中的默认ts对象似乎非常有限。如果要创建每周季节性的时间序列,建议从预测库中选择垫子对象。由于它允许多个期间,因此您可以将星期和年份定义为季节性影响:

    library(forecast)
    daily_onboardings.msts <- msts(daily_onboardings$count, seasonal.periods = c(7, 365.25),start = decimal_date(min(members$onboarded_at)))