Прогнозирование временных рядов с ежедневными данными: 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 является оправданным. Любые мысли от любого / всех участников будут высоко оценены.

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

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

CKI
источник
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)]
Том Рейли
источник