Многовариантное разложение в R?

Я пытаюсь разложить данные о ежедневных продажах на сильно сезонный компонент (365-дневная сезонность - это слишком долго для процесса ARIMA). Однако есть определенные части временного ряда, объясняемые другими факторами, включая регулярные маркетинговые события, которые влияют на данные. Я хотел бы использовать R stl функционировать так же, как и включение внешних переменных в ARIMA, но я не видел места, куда можно было бы включить внешние переменные в смесь. Вместо этого я применил экзогенные переменные к "остатку" в отдельной регрессии, но переживаю, что сезонность подхватывается stl будет ошибочным из-за упомянутых регулярных маркетинговых мероприятий.

Любые предложения о том, как обойти эту проблему?

2 ответа

Решение

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

Одним из возможных подходов было бы использование регрессионной модели с ошибками ARMA, где сезонный период данных был установлен равным 7 (для еженедельной сезонности). Вы можете обрабатывать годовую сезонность с помощью терминов Фурье ( http://robjhyndman.com/hyndsight/longseasonality/) в качестве переменных регрессии. Маркетинговые события могут быть обработаны с помощью фиктивных переменных, также включенных в xreg аргумент. Вы даже можете использовать auto.arima в пакете прогноза выберите порядок ошибки, в том числе, необходимо ли учитывать еженедельную сезонность. Просто установите xreg с терминами Фурье и фиктивными переменными, затем вызовите

auto.arima(y, xreg=xreg)

Обработка сезонности с использованием ряда Фурье предполагает, что она неизменна по форме. Однако, если у вас нет данных за многие годы, это на самом деле не является проблемой, поскольку вряд ли изменится форма намного менее чем за 20 лет, и ошибки ARIMA в любом случае будут подстраиваться под небольшие отклонения.

Если в данных есть существенная тенденция, вы должны также учесть это в регрессионной части модели. Добавление некоторых терминов B-сплайна должно с этим справиться.

Я могу порекомендовать пакет прогноза на кран от Hyndman. Там модели bats или tbats должны учитывать как сложные сезонности, так и фиктивные переменные, представляющие маркетинговые события.

Другие вопросы по тегам