我每日数据的季节性成分从2017-03-01到2017-05-29不等。我想在R中进行季节性分解。我的代码如下。
ser = ts(series[,2], frequency=7, start=c(2017,1,1 ))
plot(decompose(ser))
但图中的X轴错误。我怎样才能纠正它??
答案 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)))