Проблема з визначенням порядку ARIMA


16

Це довгий пост, тому я сподіваюся, що ви можете перенести зі мною, і, будь ласка, виправте мене там, де я помиляюся.

Моя мета - складати щоденний прогноз на основі 3 або 4 тижнів історичних даних.

Дані - це 15-хвилинні дані локального навантаження однієї з трансформаторних ліній. У мене виникають проблеми з порядком моделювання сезонного ARIMA-процесу. Розглянемо часовий ряд попиту на електроенергію:

Оригінальний часовий ряд http://i.share.pho.to/80d86574_l.png

Коли перші 3 тижні приймаються як підмножина та розрізняються наступні графіки ACF / PACF:

Підмножина http://i.share.pho.to/5c165aef_l.png

Перша різниця http://i.share.pho.to/b7300cc2_l.png

Сезонна та перша різниця http://i.share.pho.to/570c5397_l.png

Це виглядає так, що серія начебто нерухома. Але сезонність також може бути щотижневою (див. Сезонні різниці тижня та різниці в другому порядку [тут] http://share.pho.to/3owoq , як ти думаєш?)

Отже, зробимо висновок, що модель має форму:

АRЯМА(p,1,q)(П,1,Q)96

На останньому малюнку чіткий сплеск при відставанні 96 вказує на сезонний компонент МА (1) (можливо, АР (1) також може бути відмінне, оскільки в ПАКФ також є чіткий сплеск). Шипи при відставанні 1: 4 вказують на компонент МА (4), який відповідає експоненціальному розпаду в PACF з трохи фантазії. Таким чином, початковою моделлю, обраною вручну, можуть бути: с

АRЯМА(0,1,4)(0,1,1)96

Series: x 
ARIMA(0,1,4)(0,1,1)[96] 

    Coefficients:
    ma1      ma2      ma3      ma4     sma1
    -0.2187  -0.2233  -0.0996  -0.0983  -0.9796
    s.e.   0.0231   0.0234   0.0257   0.0251   0.0804

    sigma^2 estimated as 364612:  log likelihood=-15138.91
    **AIC=30289.82   AICc=30289.87   BIC=30323.18**

Функція auto.arima обчислює наступну модель (з кроком та наближенням на TRUE, інакше потрібно довго конвергенцію): з

АRЯМА(1,1,1)(2,0,2)96

Series: x 
ARIMA(1,1,1)(2,0,2)[96] 

    Coefficients:
    ar1      ma1    sar1    sar2     sma1     sma2
    0.7607  -1.0010  0.4834  0.4979  -0.3369  -0.4168
    s.e.  0.0163   0.0001  0.0033  0.0116   0.0216   0.0255

    sigma^2 estimated as 406766:  log likelihood=-15872.02
    **AIC=31744.99   AICc=31745.05   BIC=31784.25**

Що означає, що не застосовується сезонне розмежування. Ось залишки обох моделей. Статистика Ljung Box дає дуже мале значення p, вказуючи на те, що все ще існує деяка автокореляція («виправте мене, якщо я помиляюся).

Прогнозування

Таким чином, щоб визначити, що краще, найкращим є тест точності на вибірці. Тож для обох моделей прогноз робиться на 24 години вперед, що порівнюється між собою. Результати: auto.arima http://i.share.pho.to/5d1dd934_l.png ручна модель http://i.share.pho.to/7ca69c97_l.png

Авто:

                      ME     RMSE      MAE       MPE      MAPE      MASE        ACF1 Theil's U
Training set   -2.586653 606.3188 439.1367 -1.284165  7.599403 0.4914563 -0.01219792        NA
Test set     -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420  0.70219229  1.617834

Посібник

                       ME     RMSE      MAE        MPE      MAPE      MASE         ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229  7.509774 0.4875621 -0.002034122        NA
Test set     2.878919e+02 919.7398 696.0593  3.4756363 10.317420 0.7789892  0.731013599  1.281764

Запитання

Як ви можете подумати, це аналіз за перші три тижні набору даних. Я боюсь у своєму розумі з такими питаннями:

  1. Як вибрати найкращу модель ARIMA (спробувавши всі різні замовлення та перевіривши найкращі MASE / MAPE / MSE? Де вибір вимірювання продуктивності може бути дискусією у власній ..)
  2. Якщо я генерую нову модель та прогноз для кожного нового прогнозу на день (як в онлайн-прогнозуванні), чи потрібно мені враховувати річну тенденцію та як? (як у такому невеликому підмножині, я гадаю, що тенденція незначна)
  3. Чи сподіваєтесь ви, що замовлення моделі залишатиметься однаковим у всьому наборі даних, тобто, якщо приймати інший підмножина, це дасть мені ту саму модель?
  4. Який хороший спосіб в рамках цього методу впоратися зі святами? Або для цього потрібен ARIMAX із зовнішніми муляжами відпочинку?
  5. Чи потрібно використовувати підхід серії Фур'є, щоб спробувати моделі, seasonality=672про які говорилося в Довгих сезонних періодах ?
  6. Якщо так, це було б так fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(де функція фур'є є такою, як визначено в публікації блогу Hyndman)
  7. Чи включаються початкові компоненти P і Q до серії фур’є?

Більшість теоретичних знань, отриманих від FPP , чудові речі!

Перш ніж порадити щодо використання експоненціального згладжування або (динамічної) лінійної регресії, це також працює над порівнянням.

Дані

https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt

Код

data<-read.csv("file", sep=";")
load<-data[,3]

Я видалив кілька нульових значень за тиждень до значень

stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)] 
load[idx] <- load[idx-stepback] 

ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))

Можна також розмістити відтворюваний приклад, але це зробить публікацію ще довшою, але можливою, якщо це потрібно. Тож, якщо я можу щось надати, будь ласка, повідомте мене про це.

Відповіді:


9
  1. Як вибрати найкращу модель ARIMA (спробувавши всі різні замовлення та перевіривши найкращі MASE / MAPE / MSE? Де вибір вимірювання продуктивності може бути дискусією у власній ..)

Невибіркові оцінки ризику є золотим стандартом для оцінки ефективності, а отже, і для вибору моделі. В ідеалі ви перехресне підтвердження, щоб ваші оцінки ризику були усереднені за більше даних. FPP пояснює один метод перехресної перевірки для часових рядів. Дивіться Ташмана для огляду інших методів:

Ташман, Л.Я. (2000). Позамобільні тести точності прогнозування: аналіз та огляд. Міжнародний журнал прогнозування, 16 (4), 437–450. doi: 10.1016 / S0169-2070 (00) 00065-0

Звичайно, перехресне підтвердження займає багато часу, тому люди часто вдаються до використання критеріїв вибірки для вибору моделі, наприклад, AIC, завдяки чому auto.arima вибирає найкращу модель. Цей підхід цілком справедливий, якщо може бути не таким оптимальним.

  1. Якщо я генерую нову модель та прогноз для кожного нового прогнозу на день (як в онлайн-прогнозуванні), чи потрібно мені враховувати річну тенденцію та як? (як у такому невеликому підмножині, я гадаю, що тенденція незначна)

Я не впевнений, що ви маєте на увазі під річною тенденцією. Якщо припустити, що ви маєте на увазі щорічну сезонність, насправді не існує жодного способу врахувати це з даними, що вартістю менше року.

  1. Чи сподіваєтесь ви, що замовлення моделі залишатиметься однаковим у всьому наборі даних, тобто, якщо приймати інший підмножина, це дасть мені ту саму модель?

Я б очікував, що якщо заборонити певну зміну способу генерування даних, найбільш правильна основна модель буде однаковою для всього набору даних. Однак це не те саме, що говорити про те, що модель, обрана будь-якою процедурою (наприклад, процедурою, використовуваною auto.arima), буде однаковою, якщо ця процедура застосовується до різних підмножин даних. Це пояснюється тим, що мінливість внаслідок вибірки призведе до мінливості результатів процедури вибору моделі.

  1. Який хороший спосіб в рамках цього методу впоратися зі святами? Або для цього потрібен ARIMAX із зовнішніми муляжами відпочинку?

Зовнішні пустушки - найкращий підхід.

  1. Чи потрібно використовувати підхід серії Фур'є, щоб спробувати моделі, seasonality=672про які говорилося в Довгих сезонних періодах ?

Вам потрібно щось зробити, тому що, як було сказано в цій статті, функція arima в R не підтримує сезонні періоди більше 350. Я мав розумний успіх із підходом Фур'є. Інші варіанти включають прогнозування після сезонного розкладання (також охоплене FPP) та експоненціальні моделі згладжування, такі як кажани та качани.

  1. Якщо так, це було б так fit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(де функція фур'є є такою, як визначено в публікації блогу Hyndman)

Це виглядає правильно. Вам слід експериментувати з різною кількістю термінів. Зауважте, що зараз fourierу пакеті прогнозу є функція, дещо інша специфікація, і я вважаю, що вона замінює функцію в блозі Hyndman. Дивіться файл довідки щодо синтаксису.

  1. Чи включаються початкові компоненти P і Q до серії фур’є?

Я не впевнений, що ви тут просите. P і Q зазвичай відносяться до ступенів сезонних компонентів AR та MA. Використовуючи підхід "фур'є", немає сезонних компонентів, а натомість є коваріати для термінів фур'є, пов'язаних із сезоном. Це вже не сезонна ARIMA, це ARIMAX, де коваріати приблизні до сезону.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.