Протягом багатьох років люди прогнозують погодні умови, економічні і політичні події і спортивні результати, останнім часом цей великий список поповнився криптовалютами. Для пророкувань різнобічних подій існує безліч способів розробки прогнозів. Наприклад, інтуїція, експертні думки, використання минулих результатів для порівняння з традиційною статистикою, а прогнозування часових рядів — це лише один із них, при цьому найбільш сучасний і точний вид прогнозів з широкою сферою застосування.
Метод часових рядів
Метод з використання тимчасових рядів (TS) – це набір даних, який збирає інформацію протягом певного періоду часу. Існують спеціальні методи для виділення цього типу:
- лінійні та нелінійні;
- параметричні і непараметричні;
- одновимірні і багатовимірні.
Прогнозування часових рядів приносить з собою унікальний набір можливостей для вирішення сучасних завдань. Моделювання ґрунтується на вивченні, щоб встановити рушійну силу зміни даних. Процес відбувається з довгострокових тенденцій, сезонних ефектів або нерегулярних коливань, які характерні для TS, і не спостерігаються в інших типах аналізу.
Машинне навчання є галуззю інформатики, де алгоритми складаються на основі даних і включають штучні нейронні мережі, глибоке навчання, правила асоціацій, дерева рішень, навчання з підкріпленням і байесовские мережі. Різноманітність алгоритмів надає варіанти вирішення проблем, і кожен має свої вимоги і компроміси до введення даних, швидкості роботи і точності результатів. Вони, поряд з точністю остаточних прогнозів, будуть зваженими, коли користувач вирішить, який алгоритм буде працювати краще для досліджуваної ситуації.
Прогнозування часових рядів запозичує з галузі статистики, але дає нові підходи для моделювання задач. Основна проблема для машинного навчання та тимчасових рядів одна і та ж – передбачати нові результати на основі раніше відомих даних.
Мета прогнозуючої моделі
TS являє собою набір точок даних, зібраних через постійні проміжки часу. Вони аналізуються для визначення довгострокової тенденції, щоб передбачити майбутнє або виконати який-небудь інший вид аналізу. Є 2 речі, які відрізняють TS від звичайної проблеми регресії:
Мета моделі прогнозування часових рядів дати точний прогноз за запитом. Часовий ряд має час (t) як незалежну змінну і цільову залежну змінну. У більшості випадків прогноз — це конкретний результат, наприклад, вартість будинки при продажу, спортивний підсумок змагань, результати торгів на біржі. Прогноз являє медіану і середнє значення і включає в себе довірчий інтервал, виражає рівень довіреності в діапазоні 80-95 %. Коли вони фіксуються через регулярні проміжки часу, то процеси називаються тимчасовими рядами і виражаються двома способами:
- одновимірними з індексом часу, який створює неявний порядок;
- набір з двома вимірами: часом з незалежної змінної та іншої залежної змінної.
Створення функцій є однією з найбільш важливих і трудомістких задач в прикладному машинному навчанні. Проте при прогнозуванні часових рядів не створюються функції, принаймні, в традиційному сенсі. Це особливо вірно, коли потрібно спрогнозувати результат на кілька кроків вперед, а не тільки наступне значення.
Це не означає, що функції повністю заборонені. Просто їх слід використовувати з обережністю з наступних причин:
Однак потрібно мати на увазі, що використання прогнозованих значень в якості ознак поширить помилку на цільову змінну і призведе до помилок або дасть зміщені прогнози.
Компоненти часового ряду
Тенденція існує, коли ряд збільшується, зменшується або залишається на постійному рівні за часом, тому він береться за функцію. Сезонність відноситься до властивості часового ряду, який відображає періодичні шаблони, повторювані з постійною частотою (m), наприклад, m = 12 означає, що шаблон повторюється кожні дванадцять місяців.
Фіктивні змінні аналогічно сезонності можуть бути додані у вигляді бінарної функції. Можна, наприклад, врахувати свята, спеціальні події, маркетингові кампанії, незалежно від того, чи є значення стороннім, чи ні. Однак потрібно пам’ятати, що ці змінні повинні мати певні шаблони. При цьому кількість днів може бути легко розрахована навіть для майбутніх періодів і впливати на прогнозування на основі часових рядів, особливо у фінансовій сфері.
Цикли — це пори року, які не походять з фіксованою швидкістю. Наприклад, щорічні атрибути відтворення канадської рисі відображають сезонні та циклічні моделі. Вони не повторюються через регулярні проміжки і можуть виникати, навіть якщо частота дорівнює 1 (m = 1).
Lagged values – в якості предикторів можна включити запізнілі значення змінної. Деякі моделі, такі як ARIMA, векторна авторегрессия (VAR) або авторегресійної нейронні мережі (NNAR), працюють саме таким чином.
Компоненти цікавить змінної дуже важливі для аналізу тимчасових рядів і прогнозування, щоб зрозуміти їх поведінку, шаблони, а також мати можливість вибрати підходящу модель.
Атрибути набору даних
Можливо, програміст звик вводити тисячі, мільйони і мільярди точок даних у моделі машинного навчання, але це не потрібно для часових рядів. Фактично, можна працювати з невеликими і середніми TS, в залежності від частоти та типу змінної, і це не є недоліком методу. Більше того, насправді в цьому підході існує ряд переваг:
Деякі з цих наборів відбуваються з подій, записаних з допомогою часової мітки, системних журналів і фінансових даних. Оскільки TSDB спочатку працює з часовими рядами, це прекрасна можливість застосувати цю техніку до великомасштабних наборів даних.
Машинне навчання
Машинне навчання (МО) може перевершити традиційні методи прогнозування часових рядів. Існує ціла купа досліджень, в яких методи машинного навчання порівнюються з більш класичними статистичними для даних TS. Нейронні мережі — це одна з технологій, яка досить широко досліджена і застосовує підходи TS. Методи машинного навчання лідирують у рейтингу по збору даних на основі часових рядів. Ці підходи довели свою ефективність, перевершуючи підходи з чистими TS в змаганнях з M3 або Kaggle.
МО має свої специфічні проблеми. Розробка функцій або створення нових предикторів з набору даних є важливим кроком для нього і може надати величезний вплив на продуктивність і бути необхідним способом вирішення проблем тренду та сезонності даних TS. Крім того, у деяких моделей виникають проблеми з тим, наскільки добре вони відповідають даним, і якщо немає, вони можуть пропустити основну тенденцію.
Тимчасові ряди і підходи машинного навчання не повинні існувати ізольовано один від одного. Вони можуть бути об’єднані разом, щоб дати переваги кожного підходу. Методи прогнозування та аналіз часових рядів добре справляється з розкладанням даних на трендові і сезонні елементи. Потім цей аналіз можна використовувати в якості вхідних даних для моделі МО, що має в своєму алгоритмі інформацію про тенденції та сезонності, що дає найкраще з двох можливостей.
Розуміння постановки завдання
Для прикладу можна розглянути TS, пов’язаний з прогнозуванням кількості пасажирів нового високошвидкісного залізничного сполучення. Наприклад, є дані за 2 роки (серпень 2016 р. – вересень 2018 р.), і за допомогою цих даних потрібно прогнозувати кількість пасажирів на найближчі 7 місяців, маючи дані за 2 роки (2016-2018) на погодинному рівні з кількістю подорожуючих пасажирів, і необхідно оцінити кількість їх у майбутньому.
Підмножина набору даних для прогнозування з допомогою часових рядів:
Виконують візуалізацію даних, щоб знати, як вони змінюються протягом певного періоду часу.
Метод побудови Naive Approach
Бібліотека, яку в даному випадку використовували для прогнозування TS, – statsmodels. Її необхідно встановити, перш ніж застосовувати будь-який із зазначених підходів. Можливо, statsmodels вже встановлена у середовищі Python, але вона не підтримує методи прогнозування, тому потрібно клонувати її з репозиторію і встановити з використанням вихідного коду.
Для даного прикладу мається на увазі, що ціни на проїзд монети стабільні з самого початку і протягом усього періоду часу. Такий метод передбачає, що наступна очікувана точка дорівнює останньої спостерігається точці і називається Naive Approach (Наївний метод).
Тепер розраховують середньоквадратичне відхилення, щоб перевірити точність моделі на наборі тестових даних. Значення RMSE наведеного графіка можна зробити висновок, що Naive не підходить для варіантів з високою мінливістю, а застосовується для стабільних.
Простий середній стиль
Для демонстрації методу будується графік, припускаючи, що вісь Y відображає ціну, а вісь X – час (дні).
З нього можна зробити висновок, що ціна збільшується і зменшується випадковим чином з невеликим запасом, так що, середнє значення залишається постійним. У такому разі можна прогнозувати ціну наступного періоду аналогічну середньої за всі минулі дні.
Такий метод прогнозування з очікуваним середнім значенням раніше спостережуваних точок називається простим середнім методом.
При цьому беруть раніше відомі значення, обчислюють середнє і приймають його, як наступне значення. Звичайно, це не буде точно, але досить близько, і бувають ситуації, коли цей метод працює краще за все.
Виходячи з результатів, наведених на графіку видно, що цей метод працює найкраще, коли середнє значення за кожен період часу залишається постійним. Хоча наївний методу краще, ніж середній, але не для всіх наборів даних. Рекомендується крок за кроком випробувати кожну модель і подивитися, покращує вона результат чи ні.
Модель ковзної середньої
На основі цього графіка можна зробити висновок, що ціни кілька разів збільшувалися минулому з великим відривом, але тепер стабільні. Для того щоб використовувати попередній метод усереднення, потрібно взяти середнє значення всіх попередніх даних. Ціни початкового періоду сильно вплинуть на прогноз наступного періоду. Тому в якості поліпшення порівняно з простим середнім беруть середнє значення цін тільки за останні кілька періодів часу.
Така методика прогнозування називається методикою ковзного середнього, що іноді називають «ковзним вікном» розміру “n”. Використовуючи просту модель, прогнозують наступне значення в TS, щоб перевірити точність способу. Очевидно, що Naive перевершує Average, так і Moving Average для цього набору даних.
Існує варіант прогнозу методом простого експоненційного згладжування. У методі ковзного середнього, однаково зважують минулі «n» спостереження. У цьому випадку можна зіткнутися з ситуаціями, коли кожне з минулого ‘n’ впливає на прогноз по-своєму. Такий варіант, який по-різному зважує минулі спостереження, називається методом зваженого ковзного середнього.
Екстраполяція шаблонів
Одним з найбільш важливих властивостей, необхідних для розгляду алгоритмів прогнозування часових рядів, є здатність екстраполювати шаблони за межі області навчальних даних. Багато алгоритми МО не мають цієї можливості, так як вони мають тенденцію обмежуватися областю, яка визначається за даними навчання. Тому вони не підходять для TS, мета яких — проектування результату в майбутнє.
Іншою важливою властивістю алгоритму TS є можливість одержання довірчих інтервалів. Хоча це властивість за промовчанням для моделей TS, а більшість моделей МО не мають цієї можливості, оскільки не всі вони засновані на статистичних розподілах.
Не варто думати, що для прогнозування TS використовуються тільки прості статистичні методи. Це зовсім не так. Є багато складних підходів, які можуть бути дуже корисні в особливих випадках. Узагальнена авторегрессионная умовна гетероскедастичність (GARCH), байесовские та VAR – лише деякі з них.
Існують також моделі нейронних мереж, які можна застосовувати до тимчасових рядів, які використовують запізнілі предиктори і можуть обробляти такі функції як авторегрессия нейронних мереж (NNAR). Існують навіть моделі часових рядів, запозичені з складного вивчення, зокрема, у сімействі — рекурентної нейронної мережі, таких як мережі LSTM і GRU.
Метрики оцінювання і діагностика залишків
Найбільш поширеними оціночними метриками для прогнозування є середньоквадратичні середні значення, які багато хто використовує при вирішенні проблем регресії:
- MAPE, так як він не залежить від масштабу і представляє відношення помилки до фактичним значенням у відсотках;
- MASE, який показує, наскільки добре виконується прогноз порівняно з наївним середнім прогнозом.
Після того як метод прогнозування був адаптований, важливо оцінити, наскільки добре він здатний захопити моделі. Хоча оцінні показники допомагають визначити, наскільки близькі значення дорівнюють фактичним, вони не оцінюють, чи відповідає модель TS. Залишки — хороший спосіб оцінити це. Оскільки програміст намагається застосувати шаблони TS, він може очікувати, що помилки будуть вести себе, як «білий шум», оскільки вони представляють те, що не може бути зафіксовано моделлю.
“Білий шум” повинен мати наступні властивості:
Модель ARIMA
ARIMA – модель Авторегресії Integrated Moving-Average, є одним з найпопулярніших методів, які використовуються в прогнозуванні TS, в основному завдяки автокореляції даних для створення високоякісних моделей.
При оцінці коефіцієнтів ARIMA основне припущення полягає в тому, що дані є стаціонарними. Це означає, що тренд і сезонність не можуть вплинути на дисперсію. Якість моделі може бути оцінена шляхом порівняння тимчасового графіка фактичних значень з прогнозними значеннями. Якщо обидві криві близькі, то можна припустити, що модель підходить до аналізованому випадку. Вона повинна розкривати будь-які тенденції та сезонність, якщо такі є.
Потім аналіз залишків повинен показати, чи підходить модель: випадкові залишки означають, що вона точна. Підгонка ARIMA з параметрами (0,1,1) дасть ті ж результати, що і експоненційне згладжування, а використання параметрів (0,2,2) дасть результати подвійного експоненційного згладжування.
Можна отримати доступ до налаштувань ARIMA в Excel:
Звід можливостей моделі ARIMA:
Алгоритми в SQL Server
Виконання перехресного передбачення є однією з важливих особливостей часових рядів при прогнозуванні фінансових завдань. Якщо використовуються дві взаємопов’язані серії, результуюча модель може застосовуватися для прогнозування результатів однієї серії, заснованої на поведінку інших.
SQL Server 2008 має нові потужні функції часових рядів, які потрібно вивчити і використовувати. Інструмент має легкодоступні дані TS, простий у використанні інтерфейс для моделювання і відтворення функцій алгоритму і вікно пояснення з посиланням на запити DMX на стороні сервера, щоб можна було зрозуміти, що відбувається всередині.
Тимчасові ряди ринку — це широка галузь, до якої можуть застосовуватися моделі та алгоритми глибокого навчання. Банки, брокери і фонди сьогодні експериментують з їх розгортанням аналізу і прогнозування індексів, курсів валют, ф’ючерсів, цін на криптовалюту, державних акцій та багато іншого.
При прогнозуванні часових рядів нейронна мережа знаходить передбачувані патерни, вивчаючи структури і тенденції ринків, і дає пораду трейдерам. Ці мережі також можуть допомогти у виявленні аномалій, таких як несподівані піки, падіння, зміни тренда і зрушення рівня. Багато моделей штучного інтелекту використовуються для фінансових прогнозів.