ARIMA. Прогнозування часових рядів

Із минулої статті ми дізнались, що ARMA підхід об’єднує в собі авторегресію і ковзне середнє. У цій статті ми поговоримо про ARIMA-процеси.

Так що ж таке ARIMA-моделювання?

ARIMA (Auto Regressive Integrated Moving Average), як і ARMA є класом моделей, які описують поведінку даних на основі історичних значеннях ряду. Integrated – процес, який призводить тимчасовий ряд до стаціонарності.

Будь-які «несезонні» тимчасові ряди, які демонструють закономірність і як правило можна прогнозувати за допомогою ARIMA-процесу.

Кожен з компонентів вказаний в якості параметрів моделі. Використовується стандартне позначення ARIMA (p, d, q). Тобто прогнозоване значення = константа + лінійна комбінація лагів (p) + лінійна комбінація лагів прогнозованої помилки (q).

Далі знайдемо d (differencing). Як і було сказано, мета – зробити тимчасової ряд стаціонарним. Але в цьому процесі потрібно бути обережним, так як можна «переоцінити» ряд. І так, як же визначити правильних порядок d? Правильний порядок повинен мати мінімальне розходження, необхідне для отримання так званого майже стаціонарного ряду, який варіюється близько середнього значення. Так само потрібно розглянути графіки автокореляційних функцій (ACF), де перший лаг досить швидко досягає нуля.

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

Приклад

В даному прикладі були використані дані цін акції Google (NASDAQ: GOOGL) з 09.2015 по 06.2020. Дані були сформовані за допомогою API і підтянуті в CaseWare IDEA для подальшого аналізу. Для побудови моделі був використаний пакет statsmodels на мові програмування Python.

Перевірка на стаціонарність. Визначення d

Якщо ряд стаціонарний, то значення d = 0 (ARMA). Нульова гіпотеза ADF = нестаціонарний часовий ряд. Таким чином, якщо значення p-тесту менше рівня значущості (0,05), то гіпотеза відкидається, і отже тимчасової ряд є стаціонарним.

Графік 1.  Дані цін акцій (NASDAQ: GOOGLE)

ADF Statistics = -0.665414

P-value = 0.855506

Оскільки, P-value більше рівня значущості, розберемо ряд і подивимося на графік автокореляції.

Графік 2. Автокореляція при d = 0

На графіку явно видно, що дані мають тенденцію, відповідно нестаціонарність ряду підтверджується.

Подивимось на графіки даних і автокореляцію при d = 1 и d = 2

Графік 3. Дані при d = 1

Графік 4. Автокореляція при d = 1

Графік 5. Дані при d = 2

Графік 6. Автокореляція при d = 2

При d = 2 ми бачимо на графіку 6, що другий лаг йде далеко в негативну зону, і це говорить нам про те, що подвійне обчислення різниць занадто багато для цього ряду.

При d = 1 ми бачимо на графіку 4, що дотримується стаціонарність ряду.

Отже, попередньо візьмемо порядок обчислення різниць d = 1.

Порядок AR (Auto Regression). Визначення p.

Побудуємо графік часткової автокореляції (PACF)

Часткова автокореляція часових рядів допоможе в знаходженні порядку авторегресійної моделі. Будь-яка автокореляція в стаціонарному ряду може бути виправлена додаванням достатньої кількості AR-членів. Отже, ми спочатку приймаємо порядок AR-члена рівним стільки лагів, скільки перетинають межу значущості на графіку PACF.

Графік 7. Часткова автокореляція при d = 1.

Дивлячись на графік можна вказати значення як 1, так і 2. Для початку позначимо p = 1.

Ковзне середнє (MA). Порядок q.

Так само, для цього порядку d = 1, можна подивитися на графік ACF, щоб позначити порядок MA. Технічно кажучи MA – це помилка запізнілого прогнозу. Тут же, на Графіку 4 ми не бачимо суттєвих відхилень, тому попередньо раджу позначити q = 1.

Побудова моделі ARIMA

Скористаємось пакетом ARIMA, statsmodels. Перевіримо 2 моделі:

ARIMA (1,1,1) – aic = 664.26

ARIMA (2,1,1) – aic = 664.50

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

На графіку 9 відображені фактичні значення і прогнозовані.

Графік 8. Залишки і дисперсія ARIMA (1,1,1)

Графік 9. Прогнозовані значення, модель ARIMA (1,1,1)

На цьому все. Результати і графіки ми зберігаємо, і вставляємо в звіти. У CaseWare IDEA можна відразу створюючи звіт, записати статистику даних і відповідні графіки з результатами.