3

我正在使用 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

我也尝试了较短的时间,但错误仍然相同。

4

2 回答 2

1

我将按月平均您的每周数据并运行以下 ts 对象:

ts(data, freq=12, start=c(2004,2))

您将失去一些数据粒度,转换为几个月而不是几周,但是季节性软件包至少能够处理您的数据。

于 2018-02-05T20:37:52.307 回答
0

尝试 STL(使用黄土进行季节和趋势分解)。您可以将它与任何类型的季节性一起使用,不仅是每月和每季度。

它具有自动分解 mstl()。因此,对于您的数据,公式为:

x_sa <- mstl(x)

函数t.windows.window有调整参数,在您的帮助下,您可以控制趋势周期和季节性成分的变化速度。您可以从 Rob J Hyndman 和 George Athanasopoulos 的“预测:原则与实践”一书中获得更多详细信息。在“时间序列分解”部分。

于 2019-01-22T08:49:26.080 回答