Аналіз та прогнозування часових рядів

Протягом багатьох років люди прогнозують погодні умови, економічні та політичні події та спортивні результати, останнім часом цей великий список поповнився криптовалютами. Для прогнозів різнобічних подій існує безліч способів розробки прогнозів. Наприклад, інтуїція, експертні думки, використання минулих результатів для порівняння з традиційною статистикою, а прогнозування часових рядів-це лише один з них, при цьому найсучасніший і точний вид прогнозів з широкою областю застосування.

Метод часових рядів

Метод часових рядів

Метод з використання часових рядів (TS) - це набір даних, який збирає інформацію протягом певного періоду часу. Існують спеціальні методи для виділення цього типу:

  • лінійні та нелінійні;
  • параметричні та непараметричні;
  • одновимірні і багатовимірні.

Прогнозування часових рядів приносить з собою унікальний набір можливостей для вирішення сучасних завдань. Моделювання ґрунтується на вивченні, щоб встановити рушійну силу зміни Даних. Процес походить від довгострокових тенденцій, сезонних ефектів або нерегулярних коливань, характерних для ТС, і не спостерігається в інших типах аналізу.

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

Прогнозування часових рядів запозичує з області статистики, але дає нові підходи для моделювання завдань. Основна проблема для машинного навчання та часових рядів однакова-передбачати нові результати на основі раніше відомих даних.

Мета прогнозної моделі

Мета прогнозної моделі

TS являє собою набір точок даних, зібраних через постійні проміжки часу. Вони аналізуються для визначення довгострокової тенденції, щоб передбачити майбутнє або виконати якийсь інший вид аналізу. Є 2 речі, які відрізняють TS від звичайної проблеми регресії:

  1. Вони залежать від часу. Тому базове припущення про модель лінійної регресії про те, що спостереження незалежні, в цьому випадку не виконується.
  2. Поряд із тенденцією до збільшення або зменшення, більшість ТС мають певну форму сезонності, тобто зміни, характерні для певного періоду часу.

Мета моделі прогнозування часових рядів дати точний прогноз за запитом. Часовий ряд має час (t) як незалежну змінну та цільову залежну змінну. У більшості випадків прогноз-це конкретний результат, наприклад, вартість будинку при продажу, спортивний підсумок змагань, результати торгів на біржі. Прогноз представляє медіану і середнє значення і включає в себе довірчий інтервал, що виражає рівень довіреності в діапазоні 80-95 %. Коли вони фіксуються через регулярні проміжки часу, то процеси називаються тимчасовими рядами і виражаються двома способами:

  • одновимірними з індексом часу, який створює неявний порядок;
  • набір з двома вимірами: часом з незалежною змінною та іншою залежною змінною.

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

Це не означає, що функції повністю заборонені. Просто їх слід використовувати з обережністю з наступних причин:

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

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

Компоненти часового ряду

Компоненти часового ряду

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

Фіктивні змінні аналогічно сезонності можуть бути додані у вигляді двійкової функції. Можна, наприклад, врахувати Свята, Спеціальні події, маркетингові кампанії, незалежно від того, чи є значення стороннім, чи ні. Однак потрібно пам`ятати, що ці змінні повинні мати певні шаблони. При цьому кількість днів може бути легко розраховане навіть для майбутніх періодів і впливати на прогнозування на основі часових рядів, особливо у фінансовій області.

Цикли - це Пори року, які не відбуваються з фіксованою швидкістю. Наприклад, щорічні атрибути розмноження канадської рисі відображають сезонні та циклічні моделі. Вони не повторюються через регулярні проміжки і можуть виникати, навіть якщо частота дорівнює 1 (m = 1).

Lagged values - в якості предикторів можна включити запізнілі значення змінної. Деякі моделі, такі як ARIMA, векторна авторегресія (VAR) або авторегресійні нейронні мережі (NNAR), працюють саме таким чином.

Компоненти змінної, що цікавить, дуже важливі для аналізу часових рядів та прогнозування, щоб зрозуміти їх поведінку, закономірності, а також мати можливість вибрати відповідну модель.

Атрибути набору даних

Атрибути набору даних

Можливо, програміст звик вводити тисячі, мільйони та мільярди точок даних у моделі машинного навчання, але це не потрібно для часових рядів. Насправді можна працювати з малими та середніми TS, залежно від частоти та типу змінної, і це не є недоліком методу. Більш того, насправді в цьому підході існує ряд переваг:

  1. Такі набори інформації будуть відповідати можливостям домашнього комп`ютера.
  2. У деяких випадках виконують аналіз часових рядів і прогнозування, використовуючи весь набір даних, а не тільки зразок.
  3. Довжина TS зручна для створення графіків, які можна проаналізувати. Це дуже важливий момент, тому що програмісти грунтуються на графіку на етапі аналізу. Це не означає, що вони не працюють з величезними часовими рядами, але спочатку вони повинні мати можливість обробляти менші TS.
  4. Будь-який набір даних, що містить поле, пов`язане з часом, може отримати користь від аналізу часових рядів та прогнозування. Однак якщо програміст має більший набір даних, БД (TSDB) може бути більш доречним.

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

Машинне навчання

Машинне навчання (МО) може перевершити традиційні методи прогнозування часових рядів. Існує ціла купа досліджень, які порівнюють методи машинного навчання з більш класичними статистичними для даних TS. Нейронні мережі-це одна з технологій, яка досить широко досліджена і застосовує підходи TS. Методи машинного навчання лідирують у рейтингу збору даних на основі часових рядів. Ці підходи довели свою ефективність, перевершуючи підходи з чистими TS в змаганнях з M3 або Kaggle.

МО має свої специфічні проблеми. Розробка функцій або створення нових предикторів з набору даних є важливим кроком для нього і може мати величезний вплив на продуктивність і бути необхідним способом вирішення проблем тренда і сезонності даних TS. Крім того, деякі моделі мають проблеми з тим, наскільки добре вони відповідають даним, і якщо ні, вони можуть пропустити основну тенденцію.

Часові ряди та підходи машинного навчання не повинні існувати ізольовано один від одного. Вони можуть бути об`єднані разом, щоб дати переваги кожного підходу. Методи прогнозування та аналіз часових рядів добре справляється з розкладанням даних на трендові та сезонні елементи. Потім цей аналіз можна використовувати як вхідні дані для моделі МО, що має в своєму алгоритмі інформацію про тенденції та сезонність, що дає найкраще з двох можливостей.

Розуміння постановки завдання

Для прикладу можна розглянути TS, пов`язаний з прогнозуванням кількості пасажирів нового високошвидкісного залізничного сполучення. Наприклад, є дані за 2 роки (Серпень 2016 р. - вересень 2018 року.), і за допомогою цих даних потрібно прогнозувати кількість пасажирів на найближчі 7 місяців, маючи дані за 2 роки (2016-2018) на погодинному рівні з кількістю подорожуючих пасажирів, і необхідно оцінити кількість їх у майбутньому.

Підмножина набору даних для прогнозування за допомогою часових рядів:

  1. Створення поїзда та тестового файлу для моделювання.
  2. Перші 14 місяців (Серпень 2016 року. - жовтень 2017 року.) використовуються як дані навчання, а наступні 2 місяці (листопад 2017 р. - грудень 2017 року.)- дані тестування.
  3. Агрегування набору даних на щоденній основі.
Агрегування набору даних

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

Візуалізація даних

Метод побудови Naive Approach

Бібліотека, яку в даному випадку використовували для прогнозування TS, - statsmodels. Її необхідно встановити, перш ніж застосовувати будь - якої із зазначених підходів. Можливо, statsmodels вже встановлена в середовищі Python, але вона не підтримує методи прогнозування, тому потрібно буде клонувати її зі сховища та встановити за допомогою вихідного коду.

Послідовність дій

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

Наївний метод

Тепер розраховують середньоквадратичне відхилення, щоб перевірити точність моделі на наборі тестових даних. З значення RMSE і наведеного графіка можна зробити висновок, що Naive не підходить для варіантів з високою мінливістю, а застосовується для стабільних.

Простий середній стиль

Для демонстрації методу будується графік, припускаючи, що вісь Y відображає ціну, а вісь X-час (дні).

Простий середній стиль

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

Такий метод прогнозування з очікуваним середнім значенням раніше спостережуваних точок називається простим середнім методом.

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

Простий середній методом

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

Модель ковзної середньої

Модель ковзної середньої

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

Така методика прогнозування називається методикою ковзного середнього, що іноді називають «ковзаючим вікном» розміру "n". Використовуючи просту модель, прогнозують наступне значення в TS, щоб перевірити точність способу. Очевидно, що Naive перевершує як Average, так і Moving Average для цього набору даних.

Існує варіант прогнозу методом простого експоненціального згладжування. У методі ковзного середнього, однаково зважують минулі» n " спостереження. В цьому випадку можна зіткнутися з ситуаціями, коли кожне з минулого` n ` впливає на прогноз по-своєму. Такий варіант, який по-різному зважує минулі спостереження, називається методом зваженого ковзного середнього.

Екстраполяція шаблонів

Одним з найбільш важливих властивостей, необхідних для розгляду алгоритмів прогнозування часових рядів, є здатність екстраполювати шаблони за межі області навчальних даних. Багато алгоритмів МО не мають такої можливості, оскільки вони, як правило, обмежуються сферою, яка визначається даними навчання. Тому вони не підходять для TS, метою яких є проектування результату в майбутнє.

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

Не варто думати, що для прогнозування TS використовуються тільки прості статистичні методи. Це зовсім не так. Є багато складних підходів, які можуть бути дуже корисні в особливих випадках. Узагальнена авторегресійна умовна гетероскедастичність( GARCH), байєсівські та VAR - лише деякі з них.

Існують також моделі нейронних мереж, які можна застосовувати до часових рядів, які використовують запізнілі предиктори і можуть обробляти такі функції як авторегресія нейронних мереж (NNAR). Існують навіть моделі часових рядів, запозичені зі складного вивчення, зокрема, в сімействі-рекурентної нейронної мережі, таких як мережі LSTM і GRU.

Метрики оцінки та діагностика залишків

Найбільш поширеними оціночними метриками для прогнозування є середньоквадратичні середні значення, які багато хто використовує при вирішенні проблем регресії:

  • MAPE, оскільки він не залежить від масштабу і представляє відношення помилки до фактичних значень у відсотках;
  • MASE, який показує, наскільки добре виконується прогноз порівняно з наївним середнім прогнозом.

Після того як метод прогнозування був адаптований, важливо оцінити, наскільки добре він здатний захопити моделі. Хоча оціночні показники допомагають визначити, наскільки близькі значення дорівнюють фактичним, вони не оцінюють, чи відповідає модель TS. Залишки-хороший спосіб оцінити це. Оскільки програміст намагається застосувати шаблони TS, він може очікувати, що помилки будуть вести себе, як «білий шум», оскільки вони представляють те, що не може бути зафіксовано моделлю.

"Білий шум" повинен мати наступні властивості:

  1. Залишки некорельовані (Acf = 0)
  2. Залишки відповідають нормальному розподілу з нульовим середнім (неупередженим) і постійною дисперсією.
  3. Якщо будь-яка з двох властивостей відсутня, це означає, що в моделі є місце для поліпшення.
  4. Властивість нульового середнього можна легко перевірити за допомогою t-критерію.
  5. Властивості нормальності і постійної дисперсії візуально контролюють за допомогою гістограми залишків або відповідним одновимірним тестом нормальності.

Модель ARIMA

Arima-модель AutoRegressive Integrated Moving-Average, є одним з найпопулярніших методів, що використовуються в прогнозуванні TS, в основному завдяки автокореляції даних для створення високоякісних моделей.

При оцінці коефіцієнтів ARIMA основне припущення полягає в тому, що дані є стаціонарними. Це означає, що тенденція та сезонність не можуть вплинути на дисперсію. Якість моделі може бути оцінена шляхом порівняння часового графіка фактичних значень з прогнозними значеннями. Якщо обидві криві близькі, то можна припустити, що модель підходить до аналізованого випадку. Вона повинна розкривати будь-які тенденції і сезонність, якщо такі є.

Потім аналіз залишків повинен показати, чи підходить модель: випадкові залишки означають, що вона точна. Підгонка ARIMA з параметрами (0,1,1) дасть ті ж результати, що і експоненціальне згладжування, а використання параметрів (0,2,2) дасть результати подвійного експоненціального згладжування.

Алгоритми часових рядів у SQL Server

Можна отримати доступ до налаштувань ARIMA в Excel:

  1. Запускають Excel.
  2. На панелі інструментів знаходять XL MINER.
  3. На стрічці в спадному меню вибирають ARIMA.

Звід можливостей моделі ARIMA:

  1. ARIMA-авторегресійна інтегрована змінна середня.
  2. Модель прогнозування, що використовується в аналізі часових рядів.
  3. Синтаксис параметрів ARIMA : ARIMA (p, d, q), де p = кількість членів авторегресії, d = кількість сезонних різниць і q = кількість членів ковзної середньої.

Алгоритми в SQL Server

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

SQL Server 2008 має потужні нові функції часових рядів для вивчення та використання. Інструмент має легкодоступні дані TS, простий у використанні інтерфейс для моделювання та відтворення функцій алгоритму та вікно пояснення з посиланням на запити DMX на стороні сервера, щоб можна було зрозуміти, що відбувається всередині.

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

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

Статті на тему