我有一个每日交易的时间序列数据,从2017年6月28日到2018年11月26日。 数据如下所示:
我有兴趣在 R 中使用 decompose() 或 STL() 函数。但我得到了
error:
decompose(y) : time series has no or less than 2 periods
当我尝试使用 decompose() 时 和
Error in stl(y, "periodic") :
series is not periodic or has less than two periods
当我尝试使用 STL() 时。
我知道我必须指定期限,但我不明白在我的情况下该期限应该是多少?我尝试过以下玩具示例:
dat <- cumsum(rnorm(51.7*10))
y <- ts(dat, frequency = 517)
plot.ts(y)
stl(y, "periodic")
但是我没能成功。任何帮助将不胜感激。
最佳答案
频率参数反射(reflect)了季节性模式重复之前的观测次数。由于您的数据是每日数据,您可能需要将频率设置为 7 或 365.25(取决于您的业务季节性)。
当然,业务季节性越大,分解时间序列所需的数据就越多(即超过 2 个周期)。在您的例子中,您将频率设置为 517,但可用数据少于两个周期。因此,季节性分解不会发生。
更多信息请参见:Rob Hyndman's Forecasting Principles and Practice book
关于r - R 中的错误 : decompose(y) : time series has no or less than 2 periods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53617023/