Прогнозування часових рядів із щоденними даними: ARIMA з регресором


15

Я використовую щоденний часовий ряд даних про продажі, який містить приблизно 2 роки щоденних точок даних. На основі деяких онлайн-підручників / прикладів я намагався визначити сезонність даних. Здається, що існує щотижнева, щомісячна і, ймовірно, щорічна періодичність / сезонність.

Наприклад, існують день оплати праці, особливо в перший день оплати місяця, який триває кілька днів протягом тижня. Існують також деякі конкретні ефекти відпустки, чітко визначені, зазначивши спостереження.

Оснащений деякими з цих спостережень, я спробував наступне:

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

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

    Я використовував 7 (тобто тижневу частоту) для моделювання часових рядів. Я спробував тест - прогнозуючи 7 днів за один раз. Результати обґрунтовані: середня точність прогнозу на 11 тижнів становить щотижневу середню RMSE до 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

Ви повинні оцінювати моделі та прогнози різного походження за різними горизонтами, а не одне число, щоб оцінити підхід.

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

Januarys, як правило, мало в наборі даних, якщо дивитися як% у році. Вихідні дні високі. Манекени відображають таку поведінку .... MONTH_EFF01, FIXED_EFF_N10507, FIXED_EFF_N10607

Я виявив, що використання AR-компонента із щоденними даними передбачає, що останні два тижні тижня дня є типовим, як виглядає ця схема в цілому, що є великим припущенням. Ми починали з 11 місячних манекенів і 6 щоденних манекенів. Деякі відмовилися від моделі. B ** 1 означає, що на наступний день після відпустки є вплив відставання. Було 6 спеціальних днів у місяці (дні 2,3,5,21,29,30 ---- 21 можуть бути хибними?) Та три часові тенденції, 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.