Введение 6
1 Исследование предметной области 8
1.1 Временные ряды 8
1.1.1 Понятие временного ряда 8
1.1.2 Классификация временных рядов 10
1.1.3 Модели временных рядов 12
1.2 Фильтрация временного ряда 15
1.3 Реконструкция аттрактора динамической системы 21
1.3.1 Понятие аттрактора 21
1.3.2 Метод Такенса для реконструкции аттрактора по
временному ряду 22
1.3.3 Выбор оптимальной временной задержки лага т 24
1.3.4 Выбор оптимальной размерности лагового пространства m 25
1.4 Нейросетевое прогнозирование 27
1.4.1 Определение нейронной сети 27
1.4.2 Классификация искусственных нейронных сетей 29
1.4.3 Математическая модель искусственного нейрона 32
1.4.4 Обучение нейронной сети 37
1.4.5 Алгоритм Бройдена-Флетчера-Гольдфарба-Шанно с
ограниченным использованием памяти L-BFGS 39
1.4.6 Оценка качества прогнозирования 42
2 Программная реализация алгоритма прогнозирования финансовых
временных рядов 45
2.1 Описание программных средств 45
2.2 Фильтрация временного ряда 46
2.3 Реконструкция аттрактора динамической системы 49
2.3.1 Подбор оптимальной временной задержки лага 49
2.3.2 Подбор оптимальной размерности лагового пространства 51
2.4 Подбор параметров и обучение модели 58
2.5 Выполнение прогнозирования и оценка результатов 61
3 Тестирование программы и анализ результатов 64
3.1 Тестирование разработанной программы для прогнозирования
временных рядов акций нескольких компаний 64
3.2 Анализ результатов прогнозирования 66
Заключение 68
Список используемой литературы 70
Задача прогнозирования поведения некоторой системы является актуальной в современном мире. Это может быть прогноз погоды, прогноз активности пользователей на сайте или прогноз изменения цен акций компании на бирже. Прогнозирование является одним из начальных этапов планирования различного направления (экономическое, техническое). Оценка возможного поведения системы позволяет принимать взвешенные решения, а также повысить эффективность выполняемой деятельности и снизить риски провала. Выполнение прогнозирования поведения финансовых рядов позволяет участникам фондовой биржи делать наилучшие решения по покупке или продаже акций. Выбор наиболее точного алгоритма и правильная предварительная обработка данных позволяет повышать качество получаемого прогноза.
Использование нейронных сетей для выполнения прогнозирования временных рядов является наиболее перспективным и точным в теории методом решения задачи прогнозирования поведения финансовых временных рядов, так как машинное обучение подразумевает самообучение программы. В данной работе будет использоваться нейронная сеть многослойного персептрона. Для повышения качества выполняемого прогноза над исходным временным рядом будут выполнены операции предварительной обработки: операция сглаживания временного ряда и анализ оптимального количества информации для обучения нейронной сети.
Актуальность бакалаврской работы обусловлена актуальностью задачи прогноза временных рядов в целом и необходимостью описания алгоритма для выполнения прогнозирования.
В качестве объекта исследования выступает задача прогнозирования временных рядов. Предметом исследования является метод прогнозирования финансовых временных рядов с помощью использования нейронной сети.
Целью данной работы является разработка и программная реализация алгоритма предварительной обработки данных и последующего выполнения прогноза поведения финансовых временных рядов. Программная реализация будет выполнена на языке программирования Python с использованием облачного сервиса Google Colab.
Для достижения поставленной цели необходимо выполнить ряд задач:
1. Исследовать предметную область;
2. Разработать алгоритм предварительной обработки данных: выбрать методы сглаживания временного ряда и определить необходимое количество информации для качественного прогнозирования;
3. Выбрать модель нейронной сети и подобрать ее оптимальные параметры;
4. Выполнить программную реализацию описанных алгоритмов;
5. Выполнить тестирование разработанной программы на разных временных рядах и сравнить результаты;
6. Сформировать вывод о полученных результатах.
В ходе выполнения выпускной квалификационной работы было выполнено исследование задачи прогнозирования финансовых временных рядов с помощью использования искусственной нейронной сети. В процессе выполнения работы была проанализирована необходимая литература и сформированы знания о предметной части, после чего выполнена разработка алгоритма прогнозирования и произведена его программная реализация.
В ходе работы был выполнен ряд поставленных в начале работы задач:
1. Исследована предметная область;
2. Выбран метод фильтрации временного ряда EMD, а также выполнена реконструкция аттрактора динамической системы, поведение которой подлежит прогнозированию, с помощью погружения временного ряда в лаговое пространство с параметрами временной задержки лага т и размерности лагового пространства т (глубины погружения);
3. Выбрана модель нейронной сети - многослойный Персептрон, параметры которой подбираются для каждого временного ряда индивидуально с помощью сравнения нескольких тестовых моделей в прогнозировании на один день;
4. Выполнено тестирование разработанной программы на нескольких временных рядах с выводом результатов полученных прогнозов;
5. Сформирован вывод о полученных результатах.
Для формирования мнения о качестве прогноза, получаемого с помощью нейронной сети, было выполнено прогнозирования цен акций компаний Microsoft, Apple, Intel, Disney, Visa и Coca-Cola на 7 дней. Точность прогноза на неделю, полученного с помощью разработанной программы, составила 99 процентов, что позволяет сделать вывод об успешности применения нейронной сети многослойного персептрона для задачи прогнозирования.