Для предсказания временного ряда существует множество методов: регрессионные модели, гетероскедастические модели, AR, ARMA, ARIMA, LSTM, GARCH, экспоненциальное сглаживание [1-3]. Каждый метод имеет свои достоинства и недостатки, но главными недостатками часто является вычисление большого числа входных параметров и функциональных зависимостей между ними, а также отсутствие гибкости [1]. Часто входной ряд нужно подготовить перед передачей в модель, например, привести ряд из нестационарного в стационарный вид, что занимает достаточно много времени и вычислительных возможностей. Но взамен такие модели позволяют проводить долгосрочное прогнозирование. Однако для простого одношагового прогнозирование затраты на обработку временного ряда могут превысить получаемую пользу от прогнозирования. Поэтому мы предлагаем рассмотреть нейросетевой подход прогнозирования временного ряда. Целью работы является создание нейросетевой модели одношагового прогнозирования временного ряда, которая не предполагает сложных вычислений по обработке временного ряда и сведения его к стационарному виду. Для достижения данной цели необходимо спроектировать модель в виде многослойной нейронной сети, исследовать возможности модели по прогнозированию стационарного временного ряда, основанного на периодической функции, и нестационарного временного ряда на примере котировок акций публичной компании.
Исходными данными при прогнозировании служит временной ряд, состоящий из n дискретных отчётов y(t1), y(t2), …, y(tn) в последовательные моменты времени t1, t2, …, tn. Задача состоит в предсказании значения y(tn+1) в некоторый будущий момент времени tn+1.
Для решения поставленной задачи, прежде всего, необходимо определить модель прогнозирования. В данной работе задача прогнозирования сводится к задаче распознавания образов на нейронных сетях. Для построения модели прогноза временного ряда использовалась многослойная нейронная сеть прямого распространения, в которой для обновления значений весов применялся алгоритм обратного распространения ошибки. Для обучение такой сети используется стратегия обучения с учителем. В качестве функции активации на всех слоях использовалась выпрямленная линейная функция активации ReLU (rectified linear unit), которая может быть представлена следующей формулой:
По своей сути данная нейросетевая модель является линейной, так как результаты прогнозирования представляют собой взвешенную линейную сумму. Данный метод схож с методом авторегрессии.
Обучающее множество строилось из исходного временного ряда методом «Windowing» (методом окон). Основная идея данного метода заключается в использовании двух окон: входного и выходного. Каждому входному окну ставится в соответствие выходное окно. За входным окном следует сразу выходное окно. Оба окна «скользят» по временному ряду с единичным шагом, образуя обучающие пары. Таким образом нейросеть учится распознавать образы входных окон и формировать на выходе правильные выходные окна. Однако перед применением данного метода желательно нормализовать ряд до интервала значений [0;1], чтобы унифицировать входы и выходы нейросети. После обучения нейросеть готова к одношаговому прогнозированию. В качестве меры ошибки для сравнения моделей будем использовать показатель RMSE (от англ. Root Mean Square Error — среднеквадратичная ошибка), который измеряет разницу между истинными и предсказанными значениями и имеет масштаб такой же, как у функции цели. Показатель определяется формулой [2]:
где n — общее число наблюдений; yi — реальное значение ряда; ŷi — предсказанное значение ряда.
Для проведения экспериментов была разработана программная реализация модели на языке Python. Главное окно программной модели показано на рисунке 1.
В начале оценка нейросетевой модели выполнялась на предсказании периодической функции. Была взята функция y=sin(x). Предполагали, что если во входное окно попадет весь период функции, то ошибка предсказания будет стремиться к нулю, так как каждому входному окну ставится в соответствие только одно уникальное выходное окно. Результаты эксперимента с таким окном приведены на рисунке 2.
Линия предсказания практически полностью слилась с линией тестовых данных. Всего одной эпохи достаточно чтобы нейросеть выявила взаимосвязь входного и выходного окон. Но насколько маленьким может быть входное окно, чтобы гарантировать большую точность предсказания? Для этого провели ряд экспериментов, чтобы выяснить наименьшее входное окно, структуру нейросети и параметры обучения (см. табл. 1).
| № | Входное окно | Выходное окно | Скрытые слои | Коэффициент обучения | Кол-во эпох | RMSE |
|---|---|---|---|---|---|---|
| 1 | 3 | 1 | [5] | 0.01 | 1 | 0.240 |
| 2 | 3 | 1 | [5] | 0.05 | 1 | 0.100 |
| 3 | 3 | 1 | [5] | 0.1 | 1 | 0.090 |
| 4 | 3 | 1 | [5, 5] | 0.05 | 1 | 0.120 |
| 5 | 3 | 1 | [5, 5] | 0.15 | 1 | 0.100 |
| 6 | 3 | 1 | [5] | 0.05 | 5 | 0.200 |
| 7 | 5 | 1 | [5] | 0.01 | 1 | 0.180 |
| 8 | 5 | 1 | [5] | 0.05 | 1 | 0.110 |
| 9 | 5 | 1 | [5] | 0.10 | 1 | 0.060 |
| 10 | 5 | 1 | [5] | 0.15 | 1 | 0.040 |
| 11 | 5 | 1 | [5] | 0.20 | 1 | 0.037 |
| 12 | 5 | 1 | [5, 5] | 0.05 | 1 | 0.120 |
| 13 | 5 | 1 | [5, 5] | 0.20 | 1 | 0.070 |
| 14 | 5 | 1 | [5] | 0.05 | 5 | 0.190 |
| 15 | 10 | 1 | [5] | 0.01 | 1 | 0.210 |
| 16 | 10 | 1 | [5] | 0.05 | 1 | 0.024 |
| 17 | 10 | 1 | [5] | 0.1 | 1 | 0.015 |
| 18 | 10 | 1 | [5] | 0.15 | 1 | 0.004 |
| 19 | 10 | 1 | [5, 5] | 0.05 | 1 | 0.050 |
| 20 | 10 | 1 | [5, 5] | 0.10 | 1 | 0.022 |
| 21 | 10 | 1 | [5] | 0.05 | 5 | 0.220 |
Видна общая тенденция ухудшения результатов предсказания с увеличением количества эпох. Чем больше число эпох, тем больше усредняются предсказанные значения, то есть теряется чувствительность данных входного окна для периодических функций. Причина состоит в том, что одинаковые входные окна, но с разным порядком значений сопоставляются с разными выходными окнами и, как результат, при долгом обучении предсказанные значения усредняются. Также видна зависимость качества обучения от коэффициента обучения, не для каждого размера входного окна предел увеличения коэффициента обучения разный.
Максимальной точности удалось добиться в эксперименте № 18. В нём входное окно охватывает четверть периода функции, что оказывается достаточно для точного прогноза. На рисунке 3 показаны результаты этого эксперимента.
Больший интерес представляют непериодические временные ряды, которыми являются котировки акций. В работе рассмотрен временной ряд, описывающий курс акции компании Tesla за период с 01.01.2020 по 02.05.2023 в качестве экспериментальных данных. Ставилась задача предсказать котировки акций с случайно выбранной конфигурацией нейросети (см. рис. 4).
Результаты имели относительно неплохую точность предсказаний. То есть, если бы эту модель использовали каждый день, начиная с первой даты тестовых данных, для предсказания курса акций на следующий день по пяти предыдущим дням, то в среднем ошибка составляла величину 6$. Но для инвесторов это слишком большая ошибка предсказаний, поэтому были проведены исследования по подбору параметров нейромодели для увеличений точности предсказаний (см. табл. 2).
| Входное окно | Выходное окно | Скрытые слои | Коэффициент обучения | Кол-во эпох | RMSE |
|---|---|---|---|---|---|
| 3 | 1 | [5] | 0.01 | 1 | 12.42 |
| 3 | 1 | [5] | 0.05 | 1 | 5.53 |
| 3 | 1 | [5] | 0.10 | 1 | 5.78 |
| 3 | 1 | [5, 5] | 0.05 | 1 | 5.74 |
| 3 | 1 | [5, 5] | 0.10 | 1 | 4.78 |
| 3 | 1 | [5] | 0.05 | 5 | 12.36 |
| 5 | 1 | [5] | 0.01 | 1 | 10.85 |
| 5 | 1 | [5] | 0.05 | 1 | 6.30 |
| 5 | 1 | [5] | 0.10 | 1 | 5.85 |
| 5 | 1 | [5] | 0.05 | 1 | 6.15 |
| 5 | 1 | [5] | 0.15 | 1 | 5.88 |
| 5 | 1 | [5] | 0.05 | 5 | 9.50 |
| 10 | 1 | [5] | 0.01 | 1 | 8.88 |
| 10 | 1 | [5] | 0.05 | 1 | 8.04 |
| 10 | 1 | [5] | 0.05 | 1 | 8.20 |
| 10 | 1 | [5] | 0.10 | 1 | 8.19 |
| 10 | 1 | [5] | 0.05 | 5 | 9.15 |
Анализ показал, что также как и для периодической функции, видна тенденция ухудшения результатов предсказания с увеличением количества эпох. Причины здесь такие же, то есть нейросеть переобучается на данных и начинает выдавать средние значения ряда на любые входные данные. Коэффициент обучения в этом случае оказывает меньше влияние на точность прогноза, чем для периодической функции, особенно для большего входного окна. Это происходит потому, что данные более разнородны, в общем случае их можно рассматривать как случайные колебания, и их усреднение оказывается более сложной проблемой, нежели усреднение данных связанных функциональной зависимостью.
Максимальной точности удалось добиться с помощью параметров нейромодели прогнозирования в эксперименте № 5. На рисунке 5 показаны результаты этого эксперимента.
В работе рассмотрен нейросетевой подход для прогнозирования временного ряда. Создана нейросетевая модель одношагового прогнозирования временного ряда в виде многослойной нейронной сети и исследована работа данной модели по прогнозированию периодической функции и котировок акций компании Tesla. Экспериментально выявлены лучшие конфигурации модели для наивысшего качества прогноза.
Предложенная модель может быть использована для дальнейшего исследования с целью реализации многошагового прогноза на основе увеличения выходного окна прогнозирования.