УДК 519.85
НЕЙРОСЕТЕВОЕ ПРОГНОЗИРОВАНИЕ КУРСА АКЦИЙ С ПРИМЕНЕНИЕМ МЕТОДОВ НЕЛИНЕЙНОЙ ДИНАМИКИ
В.В. Филин, Т.М. Леденева
В статье обсуждается алгоритм решения задачи прогнозирования курса акций ценных бумаг с помощью методов нелинейной динамики и нейронной сети обратного распространения
Ключевые слова: нейросеть, показатель Хёрста, нелинейная динамика
Современный финансовый рынок характеризуется значительной сложностью протекающих в нем процессов. Возрастают риски, происходит глобализация международных рынков, увеличивается волатильность валют, процентных ставок, курсов ценных бумаг и цен на сырьевые товары и, как итог, финансовые рынки стали более нестабильными, сложными, рискованными и дерегулированными. Стандартные методы моделирования временных рядов для анализа и прогнозирования процессов, происходящих на финансовых рынках, в таких условиях часто дают неудовлетворительные результаты. Можно отметить существующий разрыв между действительными экономическими реалиями и теорией экономикоматематического моделирования .
В последнее время все большее внимание уделяется исследованию финансовых временных рядов с точки зрения теории хаоса. Это достаточно новая область, которая представляет собой активно развивающийся раздел математических методов экономики. Математическая теория хаоса, являющаяся одним из направлений нелинейной динамики, позволяет выявить сущность глубинных экономических процессов, часто скрытых и неявных, и разработать основу для принятия решений в таких ситуациях.
В статье описано построение системы, прогнозирующей с помощью методов нелинейной динамики и нейросетевых технологий котировки так называемых «голубых фишек», при этом решены следующие задачи: выполнен анализ фазы рынка по показателю Херста, вычисленного И/8 -методом; реализована нейронная сеть для прогнозирования цены закрытия (N +1) дня (К - размерность обучающей выборки); проведено обучение сети.
Филин Владимир Владимирович - ВГУ, аспирант, e-mail: [email protected]
Леденева Татьяна Михайловна - ВГТУ, д-р техн. наук, е-mail: [email protected]
Постановка задачи. Одним из наиболее популярных методов нелинейной динамики является метод нормированного размаха (Л/Х-анализ). С помощью алгоритма Л/Х-анализа можно выявить следующие свойствами временного ряда: значение показателя Херста Н и соответствующий ему «цвет шума»; оценка меры устойчивости временного ряда (наличие трендоустойчивости с персистентностью, хаотичностью и антиперсистентностью); наличие долговременной памяти и оценка её глубины; наличие циклов. Значение Н и «цвет шума» являются важными фрактальными характеристиками временного ряда. Постоянная Херста Н может принимать следующие значения, отражающие степень персистентности ряда:
■ Н = 0.5 означает, что временной ряд состоит из последовательности случайных независимых (некоррелированных) событий. Это так называемый «белый шум» с максимальной хаотичностью и наименьшей прогнозируемо-стью. Мера корреляции, выражаемая формулой
С = 2(2Н-1) -1 равна 0, то есть настоящее не влияет на будущее.
■ 0 < Н < 0.5 - это свидетельство антиперсистентности ряда - такой временной ряд обладает «розовым шумом», т.е. если такой ряд возрастал в предыдущий период, то вероятнее всего, он будет убывать в последующий период, и наоборот. Чем ближе Н к нулю, тем ближе константа С к величине -0.5, к отрицательной корреляции.
■ 0.5 < Н < 1 соответствует «черному шуму», т.е. этот ряд имеет долгосрочную память. Отметим, что такие ряды еще называют дробными броуновскими движениями (или несимметричным случайным блужданием). При значениях постоянной Херста, заметно превосходящих 0,5, рассматриваемый временной ряд является персистентным или трендоустойчивым, т.е. если ряд возрастает или убывает на протяжении некоторого периода, то весьма вероятно, что он сохранит эту тенденцию какое-то время в будущем. Трендоустойчивость поведения усиливается при приближении Н к еди-
57
нице, где ряд становится все менее зашумленным и имеет больше последовательных наблюдений одного знака. При Н = 1 имеем ситуацию стационарности и наличия тренда.
Для прогнозирования временных рядов нами использовалась нейронная сеть обратного распространения. Сети обратного распространения - это современный инструмент поиска закономерностей, прогнозирования, качественного анализа. Такое название они получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т.е. в направлении обратном распространению сигнала при нормальном функционировании сети. Нейронная сеть обратного распространения состоит из нескольких слоев нейронов, причем каждый нейрон предыдущего слоя соединен с каждым нейроном последующего слоя. В большинстве практических приложений оказывается достаточно рассмотрения двухслойной нейронной сети, имеющей входной слой и выходной слой (рис. 1).
Скршайспой
Рис.1. Сеть обратного распространения
Матрицу весовых коэффициентов от входов к скрытому слою обозначим W , а матрицу весов соединяющих скрытый слой и выходной,
- как V. Для индексов примем следующие обозначения: входы будем нумеровать
индексом 1, элементы скрытого слоя индексом j . На выходе будет располагаться один нейрон с одним выхдом.
Рассмотрим задачу определения показателя Херста для ряда котировок и предсказания курса акций одной из российских кампаний на основе текущей входной стоимости и ретроспективных значений предыдущего временного цикла. В итоге сеть должна сформировать на своем выходе курс акций, который соответствует его входным значениям.
Методика. Для решения задачи предлагается следующий алгоритм вычисления оценки показателя Херста:
1. Определить размах накопленных сумм
— 1 n
где hn =- У hk .
n
2. Определить среднеквадратичное отклонение
Sn =Л р-т У
V П - 1 Т=Г
(Nk - е,)2
где еа = - У Nk
3. Определить нормированный размах накопленных сумм
RS = Rn/
n = /V
4. Методом наименьших квадратов определить угловой коэффициент прямой, проходящей максимально близко к полученным точкам. Полагая
С1 = Уд2,с2 = = Уу ,
i=1 i=1 i=1 i=1
находим коэффициент Хёрста
H = C1g2 — C2g1 nc1 — c2
5. Определить оценку показателя Херста по эмпирической формуле
H = H(n) = l0g(R<nУSS(n>> ,
l°g (n/2)
где n — количество наблюдений.
При обучении нейронной сети ставится задача минимизации целевой функции ошибки
1 2
E (W,V ) = —(y - d) ® min ,
где y - выход сети, а d - требуемое значение выхода для данного входа.
Для обучения нейросети использовался метод градиентного спуска, т.е. на каждой итерации изменение веса происходит по формулам:
ЭЕ N+1 N ЭЕ
wN "=wN—а Э^
vN+1 = vN - а—
J J 3v;
Rn=max IУ(hi- hn )l- min l У(h- hn)
1] j где а - параметр скорости обучения.
В качестве активационной функции для скрытого слоя использовалась функция
2
двухполюсного сигмоида Г (8) = -----— — 1,
f'(8) =1 (1 + Г(8))(1 — Г(8)).
Для выходного слоя активационная функция имеет вид Г (8 ) = 8 .
Частные производные вычисляются по следующим формулам:
k=1
ЭЕ ( ,п
= ( у—а )
ЭЕ =1 (У — ■)) у,(1 + и,)(1 — и,) х,.
20% полученных векторов. Обучающая выборка X не подается в сеть в исходном виде. Со-
2
где ц - выходыу-го нейрона скрытого слоя.
т Э§
Заметим, что 8 = VУ,и,, -----= и, .
1=1 ] ] Эу, ,
Алгоритм обучения сети обратного распространения включает следующие шаги.
Шаг 1. Инициализация сети.
Весовым коэффициентам присваиваются малые случайные значения, например из диапазона (—0.3,0.3). Задаются е = 0.01 -
параметр точности обучения, а = 0.1 -
параметр скорости обучения, Ктах -
максимальное число итераций.
Шаг 2. Вычисление текущего выходного сигнала.
На вход сети подается один из образов обучающей выборки и определяется значение выхода сети.
Шаг 3. Настройка синаптических весов.
Расчитать изменение весов для выходного слоя сети по формулам
N+1 N ЭЕ ЭЕ ( 1 \
У = у'— аЭУ] • ЭУ]=(У—а)и'.
Рассчитать изменение весов для скрытого слоя по формулам
ЭЕ
■а-
N+1 N
те-- = w■■ ■
У 1]
Эw■■
ЭЕ
=1 (У — а) У,(1 + и,)^ — и,) х,.
Э^, 2 Шаг 4. Условия выхода.
Шаги 2-3 повторяются для всех обучающих векторов. Обучение завершается при достижении для каждого из обучающих образов значения функции ошибки, не превосходящего е, или после максимально возможного числа итераций.
Вычислительный эксперимент. Процесс решения задачи был разбит на несколько этапов. На первом этапе происходит выбор значений для решения задачи прогнозирования. Использовались котировки Сбербанка за последний год. Для данного временного ряда X вычисляется оценка показателя Херста Н, по которой в дальнейшем определяется персистентность ряда.
На втором этапе происходит формирование обучающего и проверочного множеств. В проверочное (тестовое) множество попадают
ставляется ряд Ь, = 1о§
X,
X,
1 = 1^ — 1, где
N - размерность обучающей выборки, который затем масштабируется. В основе последующей предобработки данных лежит понятие сложности обучающей выборки. Строится сглаженный ряд на основе исходного временного, при этом сглаженность регулируется параметром а (чем он больше, тем сильнее данные обобщаются). Цель сглаживания - улучшить качество обучения нейронной сети, т.к. обучающее множество, как правило, содержит немало шумов. Идея заключается в том, что переходя от более простого к более сложному, мы постепенно адаптируем нашу сеть к обучающей выборке. Шаг за шагом подаем на вход сети данные, которые все менее и менее сглажены, и в конечном результате сеть обучится на исходном множестве.
Третьим этапом идет обучение сети и непосредственная настройка синаптических весов для корректного прогнозирования значений. В обучении (при изменении коэффициентов весовых матриц) принимает участие обучающее множество векторов. Проверочное множество на данном этапе не задействовано.
На последнем этапе происходит проверка адекватности работы алгоритма. Проверка осуществляется на подготовленном ранее проверочном множестве. Чтобы понять насколько хорошо сеть научилась прогнозировать, вычисляются реальные и прогнозируемые разности между последовательными наблюдениями и определяется число совпадений знаков между ними. Также вычисляется ошибка сети. Сеть считается достаточно хорошей, если процент совпадающих знаков достигает 60%.
Котировки, использованные в приложении, взяты с сайта http://www.flnam.ru.
На первом этапе для ряда значений котировок акций Сбербанка (на момент закрытия дня) вычисляется показатель Херста (рис. 2).
На следующем этапе применяется нейро-сетевой метод. Здесь необходимо сначала выбрать число нейронов в скрытом слое сети, затем необходимо сформировать новую матрицу весов случайным образом либо загрузить уже имеющуюся.
На следующем шаге происходит формирование исходного множества векторов и разбиение его на обучающее и проверочное подмножества. Векторы образуются следующим образом: в качестве входных значений берутся значения котировок Сбербанка на конец дня.
После этого выполняется процедура обучения сети. Здесь возможно несколько вариантов. Сеть не обучилась и достигла максимального числа итераций, в окне вывода появляется сообщение об этом и выдается максимальная ошибка на последнем этапе обучения. В данном случае можно запустить процедуру обучения еще раз, где в качестве исходной матрицы можно использовать только что полученную. Вариант номер два, сеть переобучилась, выдается соответствующее сообщение. При прогнозировании можно использовать матрицу весов, полученную где-то на промежуточном этапе обучения и дающую минимальную ошибку, либо изменить начальные параметры, например число нейронов в скрытом слое, и провести процесс обучения заново. Последний вариант выхода процедуры обучения нейронной сети, он же целевой вариант обучения - вариант, когда сеть обучилась с заданной точностью. Полученные весовые матрицы и выделенные подмножества сохраняются в файл. Можно переходить к следующему этапу.
Рис.2. Прямая регрессии для точек, полученных на основе Я/Б-анализа
На последнем этапе происходит проверка адекватности работы составленной модели. Далее вычисляются значения выходов сети, обученной на векторах данного подмножества и число угаданных знаков (то есть число совпадений направлений изменения исходного - реального - и вычисленного - спрогнозированного - рядов). Также вычисляется ошибка сети на тестовом множестве.
В ходе экспериментов было замечено, что практически все вариации с обучением сети дают хороший процент угаданных знаков (>60%). На рис. 3 приведен пример работы нейросети с конкретными данными.________
Рис. 3. При т = 6, п = 10, £ = 0.1, а = 24 получено 80% процентов угаданных знаков, а ошибка сети - 0,79
В работе были решены задачи по прогнозированию нейросетевыми методами и методами нелинейной динамики. Эти методы прекрасно взаимодействуют между собой и повышают точность получения прогноза. Методы нелинейной динамики хорошо работают там, где необходимо выяснить скрытые зависимости во временных рядах. Разработанная программа тестировалась на реальных данных и дала хорошие результаты при прогнозировании.
Литература
1. Каширина И. Л. Искусственные нейронные сети: Учебное пособие / И.Л. Каширина. - Воронеж: Лаборатория оперативной полиграфии ВГУ, 2005 г.
- 68 с.
2.Уоссермен Ф. Нейрокомпьютерная техника: теория и практика / Ф. Уоссерман. - М.: Мир, 1992 г.
- 392 с.
3. Уошем Т. Дж., Паррамоу К.
Количественные методы в финансах: Учебное
пособие для ВУЗов / Т. Дж. Уошем, К. Паррамоу. -М: Финансы, Юнити, 1999. - 527 с.
Воронежский государственный технический университет Воронежский государственный университет
THE NEURAL NETWORK PREDICTION OF SHARE PRICE BY NONLINEAR
DYNAMIC'S METHODS V.V. Filin, T.M. Ledeneva
There is a describing of the share price equity securities prognosing problem's solving algorithm with help of nonlinear dynamics' methods and backpropagation neural network in the paper. Numerical experiment's results are shown in conclusion. Key words: neural network, Hearst index, nonlinear dynamic