Прогнозирование временных рядов с ежедневными данными: ARIMA с регрессором


15

Я использую ежедневные временные ряды данных о продажах, которые содержат около 2 лет ежедневных точек данных. Основываясь на некоторых онлайн-уроках / примерах, я попытался определить сезонность в данных. Кажется, что есть еженедельная, ежемесячная и, вероятно, годовая периодичность / сезонность.

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

С некоторыми из этих наблюдений я попробовал следующее:

  1. ARIMA (с пакетом R-прогноз Arimaи auto.arimaиз него), с использованием регрессора (и других значений по умолчанию, необходимых в функции). Регрессор, который я создал, представляет собой матрицу значений 0/1:

    • 11 месяцев (n-1) переменных
    • 12 праздничных переменных
    • Не могу понять часть зарплаты ... так как это немного более сложный эффект, чем я думал. Эффект зарплаты работает по-разному, в зависимости от дня недели 1-го месяца.

    Я использовал 7 (то есть недельную частоту) для моделирования временных рядов. Я попробовал тест - прогнозирование 7 дней за один раз. Результаты являются разумными: средняя точность прогноза за 11 недель составляет среднегодовой среднеквадратичный показатель до 5%.

  2. Модель TBATS (из пакета R-прогноз) - с использованием множественной сезонности (7, 30,4375, 365,25) и, очевидно, без регрессора. Точность на удивление лучше, чем у модели ARIMA при средней еженедельной RMSE 3,5%.

    В этом случае модель без ошибок ARMA работает немного лучше. Теперь, если я применю коэффициенты только для Эффектов Отпуска из модели ARIMA, описанной в # 1, к результатам модели TBATS средненедельный RMSE за неделю улучшится до 2,95%.

Теперь, не имея большого опыта или знаний о базовых теориях этих моделей, у меня возникла дилемма, является ли этот подход TBATS даже допустимым. Несмотря на то, что он значительно улучшает RMSE в ходе 11-недельного теста, мне интересно, сможет ли он выдержать эту точность в будущем. Или даже если применение эффектов «Отпуск» от ARIMA к результатам TBATS является оправданным. Любые мысли от любого / всех участников будут высоко оценены.

Ссылка для тестовых данных

Примечание. Для загрузки файла выполните команду «Сохранить ссылку как».


1
Добро пожаловать на сайт, @CKI. Если вы можете загрузить свои данные в какое-либо место в Интернете, вы можете опубликовать ссылку здесь.
— gung - Восстановить Монику

Мне интересно узнать больше о том, как были созданы регрессоры.
— орбитальный

Манекены на 6 дней недели, 11 манекенов и праздничные дни - простые 0/1 регрессоры. Фиксированный день месяца, опережение и отставание по праздникам, тренд времени, сезонный пульс и пульс основаны на эвристическом поиске.
— Том Рейли

Итак, CKI, как ты решил это?
— Том Рейли

Здравствуйте, CKI, не могли бы вы поделиться некоторыми из ваших сценариев R, использованных для создания матрицы сезонности
— Ахмед

Ответы:


9

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

Я предполагаю, что ваши данные из США. Я предпочитаю более 3 лет ежедневных данных, так как вы можете провести два выходных в выходные и не читать будни. Похоже, что ваше влияние на День благодарения - выходной в 2012 году, или произошла ошибка записи, из-за которой модель пропустила эффект Дня благодарения.

Januarys обычно находятся в наборе данных, если вы смотрите в% от года. Выходные высокие. Манекены отражают это поведение .... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

Я обнаружил, что использование компонента AR с суточными данными предполагает, что последние две недели дня недели - это то, как выглядит модель в целом, что является большим предположением. Мы начали с 11 ежемесячных манекенов и 6 ежедневных манекенов. Некоторые выпали из модели. B ** 1 означает, что на следующий день после выходных сказывается отставание. Было 6 особых дней месяца (дни 2,3,5,21,29,30 ---- 21 может быть поддельным?) И 3 временных графика, 2 сезонных импульса (где день недели начал отклоняться от как правило, 0 перед этими данными и 1 каждые 7-й день после) и 2 выброса (обратите внимание на день благодарения!) Это заняло чуть менее 7 минут. Скачать все результаты можно здесь www.autobox.com/se/dd/daily.zip

Он включает в себя быстрый и грязный лист XLS, чтобы проверить, имеет ли модель смысл. Конечно, XLS% на самом деле плохие, поскольку они являются грубыми ориентирами.

Попробуйте оценить эту модель:

Y(T) =  .53169E+06                                                                                        
       +[X1(T)][(+  .13482E+06B** 1)]                                       M_HALLOWEEN
       +[X2(T)][(+  .17378E+06B**-3)]                                       M_JULY4TH
       +[X3(T)][(-  .11556E+06)]                                            M_MEMORIALDAY
       +[X4(T)][(-  .16706E+06B**-4+  .13960E+06B**-3-  .15636E+06B**-2                                                 
       -  .19886E+06B**-1)]                                                 M_NEWYEARS
       +[X5(T)][(+  .17023E+06B**-2-  .26854E+06B**-1-  .14257E+06B** 1)]   M_THANKSGIVI
       +[X6(T)][(-  71726.    )]                                            MONTH_EFF01
       +[X7(T)][(+  55617.    )]                                            MONTH_EFF02
       +[X8(T)][(+  27827.    )]                                            MONTH_EFF03
       +[X9(T)][(-  37945.    )]                                            MONTH_EFF09
       +[X10(T)[(-  23652.    )]                                            MONTH_EFF10
       +[X11(T)[(-  33488.    )]                                            MONTH_EFF11
       +[X12(T)[(+  39389.    )]                                            FIXED_EFF_N10107
       +[X13(T)[(+  63399.    )]                                            FIXED_EFF_N10207
       +[X14(T)[(+  .13727E+06)]                                            FIXED_EFF_N10307
       +[X15(T)[(+  .25144E+06)]                                            FIXED_EFF_N10407
       +[X16(T)[(+  .32004E+06)]                                            FIXED_EFF_N10507
       +[X17(T)[(+  .29156E+06)]                                            FIXED_EFF_N10607
       +[X18(T)[(+  74960.    )]                                            FIXED_DAY02
       +[X19(T)[(+  39299.    )]                                            FIXED_DAY03
       +[X20(T)[(+  27660.    )]                                            FIXED_DAY05
       +[X21(T)[(-  33451.    )]                                            FIXED_DAY21
       +[X22(T)[(+  43602.    )]                                            FIXED_DAY29
       +[X23(T)[(+  68016.    )]                                            FIXED_DAY30
       +[X24(T)[(+  226.98    )]                                            :TIME TREND        1                   1/  1   1/ 3/2011   I~T00001__010311stack
       +[X25(T)[(-  133.25    )]                                            :TIME TREND      423                  61/  3   2/29/2012   I~T00423__010311stack
       +[X26(T)[(+  164.56    )]                                            :TIME TREND      631                  91/  1   9/24/2012   I~T00631__010311stack
       +[X27(T)[(-  .42528E+06)]                                            :SEASONAL PULSE  733                 105/  5   1/ 4/2013   I~S00733__010311stack
       +[X28(T)[(-  .33108E+06)]                                            :SEASONAL PULSE  370                  53/  6   1/ 7/2012   I~S00370__010311stack
       +[X29(T)[(-  .82083E+06)]                                            :PULSE           326                  47/  4  11/24/2011   I~P00326__010311stack
       +[X30(T)[(+  .17502E+06)]                                            :PULSE           394                  57/  2   1/31/2012   I~P00394__010311stack
      +                    +   [A(T)]
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.