Что лучше, STL или разложить?

10

Я делаю анализ временных рядов с использованием R. Я должен разложить свои данные на трендовую, сезонную и случайную составляющие. У меня есть еженедельные данные за 3 года. Я нашел две функции в R - stl()и decompose(). Я читал, что stl()это не хорошо для мультипликативного разложения. Кто-нибудь может сказать мне, в каком сценарии эти функции могут быть использованы?

Arushi
источник
1
Вам нужно будет предоставить некоторый контекст для вашей проблемы, в противном случае нам придется перейти на стек обмена или закрыть с рекомендацией, которую вы пытаетесь ?stlи ?decompose.
AdamO

Ответы:

4

Я бы сказал STL. STL делает тренды и сезонные см .: http://www.wessa.net/download/stl.pdf

Разложение только сезонное, см. Документацию здесь: http://stat.ethz.ch/R-manual/R-devel/library/stats/html/decompose.html

При работе с ними обязательно указывайте тип тренда (мультипликативный, аддитивный) и тип сезона (мультипликативный, аддитивный). Тенденции также могут иногда иметь демпфирующий фактор.

Под мультипликативным разложением я предполагаю, что вы имеете в виду в случае тренда. Вы вряд ли будете использовать мультипликативное разложение, если только вы не разлагаете функцию экспоненциального роста.

ccsv
источник
Мультипликативная декомпозиция в простом случае - это то, где базовой моделью является Y = тренд * сезонная * ошибка. Мультипликативные модели возникают в неэкспоненциальных контекстах. Например, при продажах у вас есть определенный уровень трафика и определенный коэффициент конверсии, поэтому сезонный компонент изменяется пропорционально тренду. Решение - это то, что описывает Натали.
5

Недостатки decomposeфункции в R:

  1. Оценка тренда недоступна для первых и последних наблюдений.
  2. Предполагается, что сезонная составляющая повторяется из года в год.

Поэтому я бы предпочел STL. Можно получить мультипликативную декомпозицию, сначала беря журналы данных, а затем обратно преобразовывая компоненты.

Натали
источник
1

STL является более продвинутой техникой для извлечения сезонности, в том смысле, что позволяет сезонности меняться, что не так decompose.

Чтобы понять, как работает STL:

  • алгоритм оценивает каждую сезонную подсерию (в 7-дневной сезонности он оценивает 7 подсерий: серия по понедельникам, серия по вторникам и т. д.),
  • Затем он оценит местную сезонность, выполнив регрессию лесса для каждой подсерии.

Это позволяет уловить различный эффект в сезонности. Если вы не хотите, чтобы ваша сезонность изменялась (другими словами, предполагаемый эффект каждой подсерии будет оставаться постоянным на протяжении всей временной серии), вы можете указать, что сезонное окно будет бесконечным или «периодическим». Это эквивалентно усреднению каждой подсерии и дает равный вес всем точкам (у вас больше нет никакого «локального» эффекта). decomposeпо сути то же самое, так как сезонные подкомпоненты будут оставаться постоянными на протяжении всей серии времени, что является специальной конфигурацией STL.

Это довольно хорошо объяснено здесь: https://www.otexts.org/fpp/6/1 .

STL оценивает сезонность аддитивным способом. Как объяснено несколько страниц позже в предыдущем источнике, вы можете оценить сезонность мультипликативным способом, прибегая к преобразованию журнала (или преобразованию Кокса-Бокса).

Танги
источник