Прогнозування часових рядів за допомогою ARIMA проти LSTM


64

Проблема, з якою я маю справу, - передбачення значень часових рядів. Я дивлюся по одному часовому ряду і, спираючись, наприклад, на 15% вхідних даних, я хотів би передбачити його майбутні значення. Поки що я натрапив на дві моделі:

  • LSTM (довготривала короткочасова пам'ять; клас періодичних нейронних мереж)
  • АРІМА

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

  1. LSTM працює краще, якщо ми маємо справу з величезною кількістю даних і доступно достатньо даних про навчання, тоді як ARIMA краще для менших наборів даних (це правильно?)
  2. ARIMA вимагає серії параметрів, (p,q,d)які повинні бути розраховані на основі даних, тоді як LSTM не потребує встановлення таких параметрів. Однак є деякі гіперпараметри, які нам потрібні для налаштування LSTM.
  3. EDIT: Одне з основних відмінностей між цими двома , що я помітив, читаючи велику статтю тут , є те , що ARIMA може виконувати тільки добре на стаціонарних часових рядів (де немає сезонності, тенденції і т.д.) , і ви повинні дбати про те , що якщо хочу використовувати ARIMA

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

Я мушу зазначити, що спочатку я маю справу з потоковими даними, однак наразі я використовую набори даних NAB, що включає 50 наборів даних із максимальним розміром 20k точок даних.



Чи не заперечуєте поділитися кодом LSTM? І ДЯКУЄМО.
ДОПОМОГА

Відповіді:


25

Заява 1 правильна, твердження 2 правильне, але вимагає розробки, а твердження 3 - невірне для сезонного ARIMA:

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

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

Загальний часовий ряд:

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

АРІМА

Ви невірно оцінюєте, що для прогнозування ARIMA потрібен стаціонарний часовий ряд. Несезонна ARIMA має три вхідні значення, які допомагають контролювати згладжування, стаціонарність та прогнозування ARIMA (p, d, q), де:

  • p - кількість авторегресивних доданків,
  • d - кількість несезонних різниць, необхідних для стаціонарності, і
  • q - кількість відсталих помилок прогнозу в рівнянні прогнозування.

На відміну від сезонного ARIMA має шість вхідних значень ARIMA (p, d, q, P, D, Q), де:

  • P - кількість сезонних авторегресивних термінів,
  • D - кількість сезонних відмінностей, і
  • Q - кількість сезонних ковзних середніх термінів.

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

LSTM

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

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

Перехресне підтвердження та порівняння моделей:

n

Сподіваюся, це допомагає і удачі!


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

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

Я знаю, що це похилого віку, але тут я не погоджуюся. Параметри d, D призначені для розрізнення, як говорить @ AN6U5, але причина цих відмінностей в першу чергу полягає в застосуванні стаціонарності щодо проблеми. Насправді одна інтерпретація моделі ARIMA полягає в тому, що це лише лінійна регресія з умовами забезпечення стаціонарності часових рядів.
Райан

6

Додавання до відповіді @ AN6U5.

З чисто теоретичної точки зору, в цій роботі показано, що RNN є універсальними апроксиматорами. Я детально не читав статтю, тому не знаю, чи можна докази застосувати і до LSTM, але я підозрюю. Найбільша проблема з RNN загалом (включаючи LSTM) полягає в тому, що їх важко навчати через дослідження градієнтів та проблему зникнення градієнта. Практична межа для LSTM, здається, становить близько 200 ~ кроків із стандартним спуском градієнта та випадковою ініціалізацією. І як уже згадувалося, загалом, щоб будь-яка модель глибокого навчання, щоб добре працювати, потрібно багато даних і безліч настройок.

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


2

Моделі ARIMA лінійні, а моделі LSTM - нелінійні. Деякі інші параметричні моделі нелінійних часових рядів, які вивчали статистики, - це порогові авторегресивні моделі (TAR) та авторегресивні моделі плавного переходу (STAR). Пакет R tsDyn реалізує ці моделі.

Цікаво, як у моделі STAR проти LSTM.


2

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


1

Як крайній випадок, у мене був шанс вивчити прогноз Forex (курс іноземної валюти) та інтенсивно порівнювати показники LSTM, Windows-MLP та ARIMA. Як говориться в багатьох статтях, часовий ряд Forex близький до випадкових серій прогулянок (він абсолютно нестаціонарний). Жоден із цих алгоритмів не може передбачити показник спот на наступний день. Наприклад, якщо немає (або мало) змін, то воно збереже поточне значення і це виглядає придатним. Однак якщо в завтрашній день спотової швидкості відбудеться раптова (істотна) зміна, вона завжди не спрогнозує. Проблема полягає в тому, що з даних тренінгів (скажімо, за минулу 10-річну історію розцінок спотових тарифів) нічого не можна дізнатися, чи є вони досить великими чи ні, оскільки цілком випадкові (можливо, через настрої біржових дилерів ...) .

Насправді, LSTM з лише «1» затримкою, або ARIMA з (1,0,0) буде найкращим, оскільки зберігання даних з більш ніж 1 часовим відставанням взагалі не допомагає. Для цього типу часових рядів я б сказав, що стосується ефективності відстеження: 1) ARIMA, 2) LSTM, 3) MLP. Останній коментар ... MLP з макро / мікроекономічними параметрами (скажімо, різницею ВВП, ставками облігацій, ціною сирої нафти, індексом долара тощо) як додаткові функції теж не працювали.

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