После в значительной степени успешной модели LSTM давайте попробуем воссоздать этот успех с помощью модели ARIMA. Сначала немного о временных рядах, а затем мы обсудим реализацию ARIMA на базе данных о ценах на акции Microsoft за более чем 20 лет. Давай сделаем это!

Временные ряды и модели прогнозирования

Традиционно большинство моделей машинного обучения (ML) используют в качестве входных данных некоторые наблюдения (образцы / примеры), но в данных отсутствует измерение времени .

Модели прогнозирования временных рядов - это модели, которые способны прогнозировать будущие значения на основе ранее наблюдавшихся значения. Прогнозирование временных рядов широко используется для нестационарных данных. Нестационарные данные называются данными, статистические свойства которых, например среднее значение и стандартное отклонение не являются постоянными во времени, но вместо этого эти показатели меняются с течением времени.

Эти нестационарные входные данные (используемые в качестве входных данных для этих моделей) обычно называются временными рядами. Некоторые примеры временных рядов включают значения температуры с течением времени, цену акций с течением времени, цену дома с течением времени и т. д. Таким образом, входными данными является сигнал (временной ряд), который определяется последовательными во времени наблюдениями.

Модель авторегрессионного интегрированного скользящего среднего (ARIMA)

Известным и широко используемым методом прогнозирования временных рядов является модель Авторегрессионная интегрированная скользящая средняя (ARIMA). Модели ARIMA могут фиксировать набор различных стандартных временных структур в данных временных рядов.

Терминология

Давайте разберем эти термины:

  • AR: ‹Авторегрессивный› означает, что модель использует зависимую связь между наблюдением и некоторым заранее определенным количеством запаздывающих наблюдений (также известное как «запаздывание» или «запаздывание». ).
  • I: ‹Интегрированный› означает, что модель использует дифференцирование необработанных наблюдений (например, вычитает наблюдение из наблюдения на предыдущем временном шаге), чтобы сделать время- серия стационарный.MA:
  • MA: ‹Скользящее среднее› означает, что модель использует взаимосвязь между остаточной ошибкой и наблюдениями.

Параметры модели

Стандартные модели ARIMA ожидают в качестве входных параметров 3 аргумента, то есть p, d, q.

  • p - это количество наблюдений за запаздыванием.
  • d - это степень различия.
  • q - это размер / ширина окна скользящего среднего.

Приступим к кодированию!

Необходимые модули: Keras, Tensorflow, Pandas, Scikit-Learn и Numpy

Здесь загружаются все необходимые модули.

Теперь давайте проверим, что у нас есть с этим набором данных.

df = pd.read_csv("MSFT.csv")
df.head(5)

Целевым значением, которое необходимо спрогнозировать, будет цена акции «Close».

Готовы входные переменные!

СОЗДАНИЕ НАШЕЙ МОДЕЛИ ARIMA

Затем давайте разделим данные на обучающий (70%) и тестовый (30%) набор. В этом руководстве мы выбираем следующие параметры ARIMA: p = 6, d = 1 и q = 0.

Резюме кода

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

Среднеквадратичная ошибка составляет 2,3522.

Готовим тестовые данные и делаем прогнозы

Визуализация результатов

Я позволю вам поэкспериментировать со значениями модели ARIMA, дайте мне знать, сможете ли вы получить лучшее значение MSE!

Заявление об ограничении ответственности Были попытки предсказать цены на акции с использованием алгоритмов анализа временных рядов, но они по-прежнему не могут использоваться для размещения ставок на реальном рынке. Это просто учебная статья, которая никоим образом не предназначена для того, чтобы «направить» людей на покупку акций.

Дайте мне подписаться, если вам это понравилось, чтобы узнать больше о технических блогах!

Сайонара!