我正在使用R而且我有每周数据(所有660次观察都有)并且我想使用季节性包装中的X-13 Arima-Seats来季节性地调整我的数据。我将数据存储在ts对象中:
library(lubridate)
x <- ts(data, freq=365.25/7, start=decimal_date(ymd("2004-02-01")))
library(seasonal)
x_sa <- seas(x)
然而,我收到错误:
Error: X-13 run failed
Errors:
- Seasonal period too large. See Section 2.7 of the Reference Manual on program limits
- Expected argument name or "}" but found ".1785714285714"
- Time series could not be read due to previously found errors
- Expected specification name but found "}"
- Specify series before user-defined adjustments
- Need to specify a series to identify outliers
我也试过了一段较短的时间,但错误仍然是一样的。
答案 0 :(得分:1)
我会按月平均每周数据并运行以下ts对象:
ts(data, freq=12, start=c(2004,2))
您将丢失一些数据粒度转换为几个月而不是几周,但季节性包将至少能够处理您的数据。
答案 1 :(得分:0)
尝试使用STL(使用黄土进行季节和趋势分解)。您可以将其用于任何类型的季节性,不仅是每月和每季度。
它具有自动分解mstl()。因此,对于您的数据,公式为:
x_sa <-mstl(x)
t.window 和 s.window 的调整参数在您的帮助下可以控制趋势周期和季节性成分的快速程度更改。 您可以从Rob J Hyndman和George Athanasopoulos的书“预测:原理与实践”中获得更多详细信息。在“时间序列分解”部分中。