Прогнозирование временных рядов с использованием ARIMA против LSTM

64

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

  • LSTM (долговременная кратковременная память; класс рекуррентных нейронных сетей)
  • ARIMA

Я попробовал оба и прочитал некоторые статьи на них. Теперь я пытаюсь понять, как их сравнивать. Что я нашел до сих пор:

  1. LSTM работает лучше, если мы имеем дело с огромным количеством данных и доступно достаточно данных для обучения, тогда как ARIMA лучше для небольших наборов данных (это правильно?)
  2. Для ARIMA требуется ряд параметров, (p,q,d)которые должны рассчитываться на основе данных, в то время как LSTM не требует установки таких параметров. Однако есть некоторые гиперпараметры, которые нам нужно настроить для LSTM.
  3. РЕДАКТИРОВАТЬ: Одно существенное различие между этими двумя, которые я заметил, читая большую статью здесь , заключается в том, что ARIMA может хорошо работать только на стационарных временных рядах (где нет сезонности, тренда и т. Д.), И вам нужно позаботиться об этом, если хочу использовать ARIMA

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

Я должен упомянуть, что изначально я имею дело с потоковыми данными, однако сейчас я использую наборы данных NAB, которые включают в себя 50 наборов данных с максимальным размером 20 тыс. Точек данных.

ahajib
источник
Не могли бы вы поделиться кодом LSTM? И СПАСИБО.
ПОМОГИТЕ

Ответы:

25

Утверждение 1 является правильным, утверждение 2 является правильным, но требует уточнения, а утверждение 3 является неправильным для сезонного ARIMA:

Следующее может указать вам верное направление, но, надеюсь, вы получите еще несколько ответов с большей глубиной на арене LSTM.

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

Временные ряды в целом:

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

ARIMA

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

  • р - число авторегрессионных членов,
  • d - количество несезонных различий, необходимых для стационарности, и
  • q - количество ошибок прогноза в уравнении прогнозирования.

В отличие от сезонного ARIMA имеет шесть входных значений ARIMA (p, d, q, P, D, Q), где:

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

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

LSTM

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

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

Перекрестная проверка и сравнение моделей:

Временные ряды забавны тем, что все тренировочные данные обычно можно превратить в контролируемые обучающие наборы. Однажды можно просто взять временной ряд и откатить время назад. То есть ... выберите момент времени и сделайте вид, что у вас нет никаких дополнительных данных, затем сделайте прогноз и посмотрите, насколько хорошо вы это сделали. Вы можете пройтись по временным рядам, выполнив это раз, чтобы получить оценку производительности вашей моделиn и сравнить модели, принимая необходимые меры предосторожности для предотвращения переобучения .

Надеюсь, что это помогает и удачи!

AN6U5
источник
Спасибо за ваш ответ. Ваши заметки о ARIMA полезны, и я стараюсь помнить их. В случае перекрестной проверки и сравнения двух моделей для текущих наборов данных, используя различные параметры, я могу сказать, какой алгоритм работает лучше и так далее. Проблема в том, что ни один из этих наборов данных не может представлять реальные данные (потоковые данные), и поэтому я решил, что было бы лучше попросить других в области науки о данных и машинного обучения поделиться своими мыслями и опытом.
Ахаджиб
Но если у вас есть потоковые данные, вы можете превратить их в данные тестирования, сохранив поток. Приятной особенностью временных рядов является то, что вы всегда можете создать набор данных тестирования из любого набора данных. Вам просто нужно сохранить некоторые данные, а затем откатить время.
AN6U5
Я знаю, что это в некотором роде старое, но я должен здесь не согласиться. Параметры d, D предназначены для различий, как говорит @ AN6U5, но причина сделать эти различия в первую очередь состоит в том, чтобы обеспечить стационарность проблемы. Фактически, одна интерпретация модели ARIMA заключается в том, что это просто линейная регрессия с терминами для обеспечения стационарности временных рядов.
Райан
6

Добавление к ответу @ AN6U5.

С чисто теоретической точки зрения, эта статья показывает, что RNN являются универсальными аппроксиматорами. Я не читал газету в деталях, поэтому я не знаю, можно ли применить это доказательство и к LSTM, но я подозреваю, что так. Самая большая проблема с RNN в целом (включая LSTM) заключается в том, что их трудно обучать из-за проблемы исследования градиента и исчезновения градиента. Практический предел для LSTM составляет около 200 шагов со стандартным градиентным спуском и случайной инициализацией. И, как уже упоминалось, в целом, чтобы любая модель глубокого обучения работала хорошо, вам нужно много данных и куча настроек.

Модель ARIMA более ограничена. Если ваша базовая система слишком сложна, то просто невозможно получить хорошую подгонку. Но с другой стороны, если ваша базовая модель достаточно проста, она намного эффективнее, чем подход глубокого обучения.

Луи Т
источник
2

Модели ARIMA являются линейными, а модели LSTM - нелинейными. Некоторыми другими параметрическими нелинейными моделями временных рядов, которые изучали статистики, являются пороговые модели авторегрессии (TAR) и модели авторегрессии плавного перехода (STAR). Пакет R tsDyn реализует эти модели.

Интересно, как модели STAR против LSTM.

Fortranner
источник
2

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

Старбакс
источник
1

В крайнем случае у меня была возможность изучить прогноз Forex (курс иностранной валюты) и интенсивно сравнивать показатели LSTM, Windowed-MLP и ARIMA. Как говорится во многих статьях, временные ряды Форекс близки к случайным рядам ходьбы (они совершенно нестационарны). Ни один из этих алгоритмов не может предсказать ставку на следующий день. Например, если нет (или мало) изменений, то оно сохранит текущее значение и выглядит хорошо. Однако, если есть внезапное (существенное) изменение в спотовой ставке завтра, то это всегда не в состоянии предсказать. Проблема в том, что из данных обучения (например, истории спотовых курсов за последние 10 лет) нечего учить, достаточно ли оно велико или нет, потому что оно совершенно случайно (возможно, из-за настроений биржевых дилеров ...) ,

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

Восточный Чун
источник