r - R 中的错​​误 : decompose(y) : time series has no or less than 2 periods

标签 r time-series

我有一个每日交易的时间序列数据,从2017年6月28日到2018年11月26日。 数据如下所示:

enter image description here

我有兴趣在 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/

相关文章:

r - 计算group_by的均值(汇总)时处理NA

r - 使用变量名作为 lapply 的绘图标题

r - 在 R 中对数据帧的多个向量进行操作然后取平均值

python - groupby 和 resample 对 pandas 数据框的同时操作?

r - 如何获得矩阵中两列值之间的绝对差

performance - 将JIT与R一起使用可能存在的缺点?

r - 将 arima 生成的预测时间转换为标准日期时间

python - pandas >= 0.18 - 重新采样的更改,如何使用 groupby 进行上采样

r - 如何在R中向SVM(ksvm)呈现多个时间序列数据(或者,如何向SVM呈现二维输入数据)

r - 使用字符串索引 xts 并仅返回该确切时间的观察结果