X-11方法季节成分不一致问题及X-13ARIMA-SEATS原理咨询
X-11时间序列分解疑问与机制解析
问题背景与代码
正在学习R语言中的X-11时间序列分解方法,参考Rob J Hyndman与George Athanasopoulos所著《Forecasting: Principles and Practice (3rd ed)》,使用seasonal包进行季节调整。将该方法应用于fpp3包中的us_retail_employment数据,代码如下:
library(fpp3) us_retail_employment <- us_employment |> filter(year(Month) >= 1990, Title == "Retail Trade") |> select(-Series_ID) x11_dcmp <- us_retail_employment |> model(x11 = X_13ARIMA_SEATS(Employed ~ x11())) |> components() autoplot(x11_dcmp) + labs(title = "Decomposition of total US retail employment using X-11.")
核心疑问
生成的图像显示,季节成分振幅呈下降趋势,且在2010年1月后达到峰值,但原始数据显示就业人数呈增长趋势,这与直觉相悖,期望季节成分能反映稳定的季节性模式。想了解:
- 这种不一致是因为选择X-11而非SEATS方法?
- 还是X-11方法的特性或假设影响了季节成分估计?
- 或是数据本身的特性导致季节成分随时间变化?
同时希望用通俗语言了解X-13ARIMA_SEATS函数的内部机制及季节调整步骤。
问题解答
季节成分振幅下降的原因
- 不是X-11与SEATS的选择问题:你在代码中指定了
~x11(),所以走的是X-11分解流程,和SEATS无关。这种时变的季节振幅是X-11的正常特性,而非错误。 - X-11的核心特性:X-11不假设季节性是固定不变的,它允许季节成分的振幅和模式随时间变化。它通过迭代移动平均的方式,动态捕捉不同时期的季节性波动特征,而不是强制生成固定振幅的季节项。
- 数据本身的特性:美国零售就业的总规模一直在增长,但季节性波动的相对比例在下降——比如圣诞旺季的临时就业增量,在总就业中的占比逐年降低,所以X-11估计出的季节成分(相对于趋势的波动)就会呈现振幅下降的趋势。2010年前后的峰值是次贷危机后就业复苏阶段的短期波动放大,属于特殊时期的阶段性特征,之后回归长期下降的相对波动趋势。
X-13ARIMA-SEATS通俗解析
X-13ARIMA_SEATS是整合了ARIMA预调整、X-11分解、SEATS分解的工具,你用的~x11()分支流程可以拆成3步:
- ARIMA预处理:先给原始数据拟合ARIMA模型,补全缺失值,同时生成序列两端的“延伸数据”(避免移动平均在序列首尾的误差),还会自动剔除日历效应(比如不同年份的2月天数、每月工作日数差异)。
- 迭代式X-11分解:
- 第一步:用移动平均初步估计趋势-循环项(长期增长走势+中期经济周期波动),从原始数据中减去这个项,得到去趋势的序列。
- 第二步:从去趋势序列中,通过同月/同季的移动平均提取初步的季节成分,再用原始数据减去趋势和季节成分,得到残差+循环项。
- 第三步:反复迭代优化——用更精准的趋势-循环项重新计算季节成分,再用新的季节成分修正趋势项,直到各成分的变化稳定下来。
- 输出最终成分:最终分解出趋势-循环项(反映长期就业增长)、季节项(时变的季节性波动)、残差项(无法解释的随机噪声)。
内容的提问来源于stack exchange,提问作者Rony Golder
相关产品推荐
相关产品推荐

