Разложение Лёсса предназначено для сглаживания ряда, применяя к данным средние значения, так что оно разбивается на составляющие, например, трендовые или сезонные, которые представляют интерес для анализа данных. Но эта методология не предназначена для проведения формальной проверки на наличие сезонности .
Хотя в вашем примере 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
Мы можем видеть, что именно остаток объясняет большую часть дисперсии в данных (как и следовало ожидать для процесса белого шума).
Если мы возьмем ряд с сезонностью, то относительная дисперсия сезонного компонента будет гораздо более актуальной (хотя у нас нет простого способа проверить это, так как лесс не параметрический).
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
может заставить нас подумать, что в данных может быть выявлена соответствующая сезонная модель, но при ближайшем рассмотрении можно обнаружить, что на самом деле это не так. Если цель состоит в том, чтобы принять решение о наличии сезонности, разложение лесса может быть полезным в качестве предварительного взгляда, но оно должно быть дополнено другими инструментами.