黄土分解旨在通过对数据应用平均值来平滑序列,以便将其分解为对数据分析感兴趣的组件,例如趋势或季节性。但这种方法并不打算对季节性的存在进行正式测试。
尽管在您的示例中stl
返回了季节性周期性的平滑模式,但此模式与解释序列的动态无关。为了看到这一点,我们可以将每个分量的方差与原始序列的方差进行比较。
set.seed(123)
x <- ts(rnorm(144, sd=1), frequency=12)
a <- stl(x, s.window="periodic")
apply(a$time.series, 2, var) / var(x)
# seasonal trend remainder
# 0.07080362 0.07487838 0.81647852
我们可以看到,余数解释了数据中的大部分方差(正如我们对白噪声过程所期望的那样)。
如果我们采用具有季节性的序列,则季节性成分的相对方差更为相关(尽管我们没有直接的方法来测试它,因为 loess 不是参数)。
y <- diff(log(AirPassengers))
b <- stl(y, s.window="periodic")
apply(b$time.series, 2, var) / var(y)
# seasonal trend remainder
# 0.875463620 0.001959407 0.117832537
相对方差表明季节性是解释序列动态的主要成分。
粗心地看情节stl
可能具有欺骗性。返回的漂亮模式stl
可能会让我们认为可以在数据中识别出相关的季节性模式,但仔细观察可能会发现事实并非如此。如果目的是确定是否存在季节性,黄土分解可以作为初步视图,但应辅以其他工具。