Нейросетевая модель прогнозирования временных рядов финансовых данных

НЕЙРОСЕТЕВАЯ МОДЕЛЬ ПРОГНОЗИРОВАНИЯ ВРЕМЕННЫХ РЯДОВ

ФИНАНСОВЫХ ДАННЫХ

П.В. Кратович

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

Ключевые слова: временной ряд, прогнозирование, нейронные сети, многослойный персептрон, метод обратного распространения ошибки.

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

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

В соответствии с целью работы решаются следующие задачи:

- обоснование применения моделей на основе нейронных сетей в задаче прогнозирования временных рядов;

- описание методики предварительной обработки временного ряда и формирования примеров для обучения нейронной сети;

- описание архитектуры и моделирование нейронной сети для прогнозирования временных рядов;

- описание и программная реализация алгоритма обучения нейронной сети на основе процедуры обратного распространения ошибки;

- построение прогноза будущих значений временного ряда.

Предлагаемая методика прогнозирования состоит из четырех основных этапов:

1) предварительный анализ временного ряда;

2) построение нейросетевой модели;

3) обучение нейронной сети по модифицированному алгоритму обратного распространения ошибки;

4) прогнозирование с помощью обученной нейросетевой модели.

Для решения задачи прогнозирования временного ряда zk, где к=0,1,..., находят применение нелинейные модели вида 2к+1 =Ф^к,...^к-п+1), где Ф^,...^^^) - некоторая нелинейная функция; 2к+1 - прогнозируемое значение ряда;

zk,...,zk-п+1 - наблюдаемые значения (предыстория ряда); п - порядок модели.

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

Дх^х^.^х^). Тем не менее, из теоремы не следует, что один скрытый слой является оптимальным относительно времени обучения, простоты реализации, а также качества обобщения [1].

Для моделирования динамики временного ряда в работе использована полносвязная нейронная сеть, в которой каждый нейрон слоя I связан со всеми нейронами предыдущего слоя 1-1; ^¡)<п) -синаптический вес, связывающий выход нейрона 1 со входом нейрона j на итерации п; <у1)<п) -функциональный сигнал, генерируемый на выходе нейрона 1 на итерации п. Пусть на нейрон j поступает поток сигналов от нейронов, расположенных в предыдущем слое, тогда индуцированное локальное поле Ц )<п), полученное на входе функции активации, связанной с данным нейроном, вычисляется по формуле

т

ц)<п) = £ ^)<п)

1=0

где т - общее число входов (за исключением порога) нейрона ,]. Синаптический вес Wj0 (соответствующий фиксированному входу у0=1) равен порогу применяемому к нейрону j. Функциональный сигнал у<п) на выходе нейрона j на итерации п равен

^)<п) =Фj

где фj - функция активации j-го нейрона. Функция активации - непрерывно дифференцируемая нелинейная функция. В качестве функции активации в работе используется функция гиперболического тангенса:

ФJ

где а и Ь - константы.

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

г 1N

{(х(п),^п))} , где х(п) - входной вектор, поступающий на вход сети; - желаемый отклик; N -общее число примеров.

Изменение синаптических весов нейронов скрытых и выходного слоев сети, /=1,...,Ь, выполняется в соответствии с обобщенным дельта-правилом

^}(п+1) = ^}(п) + а^(')}(п-1))+

+П(51)(п)(у 1-1)(п),

(е^)(п) ФJ((SJL)(П)) для нейрона J

выходного слоя Ь,

для нейрона

J скрытого слоя I; П - параметр скорости обучения; а - постоянная момента; (е^ )(п) - сигнал ошибки выходного нейрона j на итерации п (соответствующий п-му примеру обучения) [1].

Цель обучения - минимизация суммарной среднеквадратической ошибки на всем обучающем множестве

где

фЖ)

1 N

I = 2 X ^-5

2 п=1

;(пЬ2

)2

где d(; - целевое значение для примера п; zt ' -прогнозное значение.

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

1 N

I = 1X7^(п) -z(п))2

2 п=1

где

у=.

[в, если ^(п) -z(п-1))(z(п) -z(п-1)) > 0,

[2 - в, если ^(п) - z(п-1) )(z(п) - z(п-1)) < 0, Ре (0,1).

Для практической реализации алгоритма обратного распространения ошибки будем полагать, что сходимость алгоритма достигнута, если значение целевой функции 1^)<е, где е>0 - заранее заданный вещественный параметр, называемый точностью обучения [2].

Исходные данные для прогнозирования представляют собой табулированный текстовый файл, который содержит ежедневные котировки акций ОАО «Ростелеком» по цене закрытия. Файл со-

держит 248 записей, что соответствует временному интервалу в один календарный год [3].

Для улучшения качества прогноза исходный временной ряд подвергается предварительной обработке. На первом этапе предобработки данных использован метод сглаживания скользящим средним. Пусть zk, к=1,2,...^ - временной ряд длины N тогда временной ряд zk ,

X, к = 1,..,р -1

zk = 1рг , м

-X к = Р^Ч

, Р 1=0

называется сглаженным временным рядом относительно zk, параметр р - период скольжения. Для сближения исходного и сглаженного рядов и сохранения тенденции исходного ряда в работе проведено сглаживание по трем членам временного ряда, то есть период сглаживания р=3 [4].

С целью получения качественного прогноза и сокращения времени обучения нейронной сети для анализа данных не следует выбирать сами котировки, которые обозначим zп (сглаженное значение котировки акции во время п=0,1,2,...). Действительно значимыми для предсказаний являются изменения котировок ДzП=zП-zП_1. Поэтому в качестве исходных данных логично выбирать наиболее статистически независимые величины, например, изменения котировок Дzп или логарифм

, , -п Дг„

относительного приращения пп = 1п

Ь0 = 0, п > 0, ведущие себя более однородно, что особенно важно для длительных временных рядов, когда уже заметно влияние инфляции. Величины Ьп интерпретируются как «возврат», «отдача», «логарифмическая прибыль» [5].

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

Сформированный на этапе предварительной обработки набор исходных данных делится на два множества - обучающее и тестовое. Обучающие данные подаются сети для обучения, а тестовые -для расчета ошибки сети. Исследуемый в работе временной ряд состоит из 248 элементов, из которых первые 223 составляют обучающее множество, а последние 25 - тестовое.

Из элементов обучающего множества по методу скользящего окна формируются примеры для обучения нейронной сети. Этот метод подразумевает использование окон Wi и W0 с фиксированными размерами pi и р0. Для описываемой в работе модели размерность выходного слоя нейронной сети совпадает с размерностью выходного окна р0=1. Размерность входного слоя совпадает с размерностью входного окна рр5, что соответствует продолжительности торговой недели на фондовой бирже. Таким образом, обучающее множество в

285  280  275  270

/ V 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

286 284 282 1 Прогнозные значения И Истинные значения| Рис. 1 л, у \ ^

278 276 274 272 270 / V "V l^^r1 -\ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Рис. 2

данной работе состоит из 218 примеров.

После завершения обучения нейронной сети на примерах из обучающего множества проверяется качество прогноза на элементах тестового множества. Для этого вычисляется ошибка прогнозирования нейронной сети по формуле

Е = - У^^^^М. 100% , где

N¿1 zt '

N=25 - размерность тестового множества; ^ - прогнозируемое значение для 1-го тестового значения zt.

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

Проведенный численный эксперимент показал, что оптимальные значения параметров скорости обучения и момента для рассматриваемого временного ряда попг, аопге(0,1; 0,5). Когда параметр момента а=0, оптимальное значение параметра скорости обучения попт^1. Также отметим, что конечная среднеквадратическая ошибка мало отличается для разных кривых, а это означает, что поверхность ошибок в рассматриваемой задаче достаточно гладкая.

Согласно результатам проведенных исследований, оптимальная нейронная сеть для рассматриваемой задачи содержит два скрытых слоя. Входной слой состоит из 5 нейронов; на первом скрытом слое находится 10 нейронов, на втором -15, а выходной слой содержит 1 нейрон.

Значения основных параметров нейросетевой модели приведены в таблице.

Для нейронной сети, обученной по алгоритму обратного распространения ошибки с целевым функционалом (5) средняя ошибка прогнозирования на тестовом множестве Е=0,4487 %, точность прогноза направления тренда составила 52 %. Результаты прогнозирования для нейронной сети данной архитектуры приведены на рисунке 1.

Для нейронной сети, обученной по алгоритму обратного распространения ошибки с целевым функционалом (6), где параметр Р=0,5, средняя

ошибка прогнозирования на тестовом множестве E=0,4106 %, точность прогноза направления тренда составила 76 %. Результаты прогнозирования для нейронной сети данной архитектуры приведены на рисунке 2.

Результаты применения построенной в работе нейросетевой модели для прогнозирования динамики временного ряда котировок акций компании «Ростелеком» показывают, что нейронные сети могут служить эффективным инструментом для прогнозирования временных рядов финансовых данных. Для всех рассмотренных в работе комбинаций значений параметров нейросетевой модели ошибка прогноза не превышает 0,5 %, что соответствует прогнозу высокого качества.

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

Программный продукт, реализованный на базе описанной нейросетевой модели, с успехом применяется в ОАО «ГУТА-БАНК» (г. Тверь) для принятия инвестиционных решений на фондовом рынке.

Литература

1. Хайкин С. Нейронные сети: полный курс; пер. с англ. М.: Издат. дом «Вильямс», 2006. 1104 с.

2. Luo Z. On the convergence of the LMS algorithm with adaptive learning rate for linear feedforward networks. Neural Computation. 1991, vol. 3, pp. 226-245.

3. Рынок акций, котировки акций, рынок ценных бумаг, акции, брокеры и брокерское обслуживание в России. URL: http://stocks.investfunds.ru (дата обращения: 06.07.2009).

4. Kramer A.H. and A. Sangiovanni-Vincentelli. Efficient parallel learning algorithms for neural networks, Advances in neural Information Processing Systems. San Mateo, CA: Morgan Kaufmann. 1989, vol. 1, pp. 40-48.

5. Ширяев А.Н. Основы стохастической финансовой математики. Т. 1. Факты. Модели. М.: ФАЗИС, 1998. 512 с.

Название параметра Значение параметра

Диапазон начальных значений весовых коэффициентов (wji )(0) < 1

Коэффициент скорости обучения п 0,5

Момент а 0,1

Точность обучения е 0,005