Прогнозування часових рядів із щоденними даними: 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.