Расчет показателей сезонности для сложной сезонности

11

Я хочу прогнозировать розничные позиции (по неделям), используя экспоненциальное сглаживание. Я сейчас застрял в том, как рассчитывать, хранить и применять индексы сезонности.

Проблема в том, что все примеры, которые я нашел, имеют дело с некой простой сезонностью. В моем случае у меня есть следующие проблемы: 1. Сезоны не происходят на одной и той же неделе каждый год: они подвижны. Марди-гра, одолжил, пасха и некоторые другие. 2. Есть времена года, которые меняются в зависимости от года. Например, существует сезон национальных праздников. В зависимости от того, близок ли праздник к выходным, клиенты покинут город или не покинут его. Так что это похоже на два сезона: один, когда клиенты покидают город, и другой, когда они не покидают город. 3. Иногда два (или 3) сезона происходят одновременно. Например, у нас был сезон "Марди-Гра", происходящий одновременно с сезоном Валентина.
4. Иногда времена года меняются по продолжительности. Например, «сезон Хэллоуина» начался ранее в этом году. Рождество также является еще одним примером, когда каждый год мы начинаем нести продукты.

Мне кажется, что мне нужно найти способ установить своего рода «сезонные профили», которые затем, в зависимости от конкретного сценария, каким-то образом добавляются для получения правильного сезонного индекса. Имеет ли это смысл?

Кто-нибудь знает, где я могу найти практическую информацию о том, как это сделать?

Спасибо Эдгард

elriba
источник

Ответы:

7

Для описываемых вами видов сезонности подход с использованием фиктивной переменной, вероятно, является наилучшим. Однако это легче обрабатывать в среде ARIMA, чем в инфраструктуре экспоненциального сглаживания. где каждый Переменная соответствует одному из праздничных или фестивальных событий. Вот как функция в R будет соответствовать регрессионным переменным (как регрессия с ошибками ARIMA, а не как модель ARIMAX). Dт,к

yt=a+b1Dt,1++bmDt,m+NtNtARIMA
Dt,karima

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

Роб Хиндман
источник
Привет Квак и Роб. Спасибо за просмотр. Я хотел использовать экспоненциальное сглаживание, потому что это то, с чем я больше знаком. Я думаю, что мне нужно узнать, как использовать платформу ARIMA. Не могли бы вы порекомендовать хорошую книгу, которая помогла бы мне узнать достаточно много о фреймворке ARIMA, чтобы применить такой фиктивный подход к переменной? У меня есть «Прогнозирование, временные ряды и регрессия» Бауэрмана и Левенбах «Прогнозирование: практика и процесс управления спросом», которые я использовал, чтобы узнать об экспоненциальном сглаживании. Я не знаю, достаточно ли подробно они описывают то, что мне нужно. Спасибо!
Elriba
Бауэрман О'Коннелл и Келер вполне хороши для представления моделей ARIMA, но я не думаю, что это включает ARIMA с ковариатами. Вы можете попробовать мой учебник 1998 года, который охватывает моделирование и регрессию ARIMA с ошибками ARIMA на начальном уровне. См. Robjhyndman.com/forecasting для деталей.
Роб Хиндман
1

Простым решением будет включение в вашу спецификацию манекенов для событий:

(1)yt^=λ1yt1+...+λkytk+ϕ1Dt,1+ϕmDt,m

где - показатель, принимающий значение если на неделе есть событие (скажем, Mardi Gras) и 0 в противном случае, для всех событий, которые вы считаете важными. 1 т, м мDt,m1tmm

Первая часть спецификации по существу является экспоненциальными сглаживателями, но с весом, меняющимся в зависимости от запаздывания (и оценивается OLS).λ1yt1+...+λkytk

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

R для fit (1) довольно прост, предполагая, что dlsales стационарен, а D - ваша матрица фиктивных переменных:

fit<-arima(dlsales,order=c(4,0,0),seasonal = list(order = c(1, 0, 0),period=52),xreg = D)

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

user603
источник
2
На самом деле, функция арима в R не будет соответствовать вашей модели (1). arima () регрессирует с ошибками ARIMA, а ваше уравнение (1) является моделью ARMAX.
Роб Хиндман
Роб:> Я редактировал уравнение один. Можете ли вы указать источник, где объясняется разница (ы) между armax и регрессией с ошибками аримы (или, альтернативно, предоставить интуитивное объяснение). Кроме того, знаете ли вы о пакете R, который реализует модели ARMAX? Заранее спасибо.
user603
Модель ARMAX первого порядка с одной ковариатой имеет вид y_t = a + bx_t + cy_ {t-1} + e_t, где e_t - нулевое среднее. Соответствующая регрессия с ошибкой ARIMA имеет вид y_t = a + bx_t + n_t, где n_t = phi * n_ {t-1} + z_t, а z_t - это нулевое среднее значение.
Роб Хиндман
1
@kwak. Во-первых, n_t = phi n_ {t-1} + z_t есть AR (1). Процесс скользящего среднего порядка 1 будет иметь вид n_t = theta z_ {t-1} + z_t. Во-вторых, регрессия с ошибками MA эквивалентна модели MAX. Но как только вы добавляете AR-термины в процессе ошибки, между этими двумя классами нет эквивалентности. В-третьих, функция arimax () в TSA подходит для моделей передаточных функций, частным случаем которых является регрессия с ошибками ARIMA. Он не подходит для моделей ARIMAX. Я мог бы написать в блоге об этом, поскольку трудно найти различные классы моделей, которые можно сравнивать и обсуждать где угодно.
Роб Хиндман
2
Я попытался обобщить различные модели на robjhyndman.com/researchtips/arimax
Роб Хиндман