Введение 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 процентов, что позволяет сделать вывод об успешности применения нейронной сети многослойного персептрона для задачи прогнозирования.
1. Аггарвал, Ч. Нейронные сети и глубокое обучение : учебный курс. - М. : Диалектика, 2020. - 744 с. : ил. - ISBN 978-5-907203-01-3.
2. Анатольев С.А. Задачи и решения по эконометрике. М. : Российская экономическая школа, 2005 г. - 164 с.
3. Андерсон Т. Статистический анализ временных рядов: Пер. с англ. - М. : Мир, 1976. 757 с.
4. Анищенко В.С., Астахов В.В., Вадивасова Т.Е. и др. Нелинейные эффекты в хаотических и стохастических системах / Под ред. В.С. Анищенко. Пер. с англ. М.-Ижевск : Институт компьютерных исследований, 2003. 529 с.
5. Безручко Б.П., Смирнов Д.А. Математическое моделирование и хаотические временные ряды. Саратов: ГосУНЦ «Колледж», 2005. 320 с. ISBN 5-94409- 045-6.
6. Верещагин Н.К., Щепин Е.В. Информация, кодирование и предсказание. - М. : ФМОП, МЦНМО, 2012. - 238 с.
7. Каток А.Б., Хассельблат Б. Введение в современную теорию динамических систем / Пер. с англ. М. : Факториал УРСС, 1999. 767 с.
8. Лоскутов А.Ю., Михайло А.С. Основы теории сложных систем. - М.-Ижевск : Институт компьютерных исследований, 2007. - 620 с.
9. Мишулина О.А. Статистический анализ и обработка временных рядов. - М.: МИФИ, 2004. - С. 180. - ISBN 5-7262-0536-7.
10. Мюллер А., Гвидо С. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными. : Пер. с англ. - М. : Вильямс, 2017. - 480 с. - ISBN 978-5-9908910-8-1.
11. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Погружение в мир нейронных сетей. - СПб. : Питер, 2018. - 480 с. : ил. - ISBN 978-5-496-02536-2.
12. Рашид, Т. Создаем нейронную сеть. : Пер. с англ. - СПб. : ООО “Альфа-книга”, 2017. - 272 с. : ил. - Парал. тит. англ. ISBN 978-5-9909445-7-2.
13. Введение в машинное обучение [Электронный ресурс]: Онлайн
курс / Образовательный сайт Coursera. URL:
https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie (дата
обращения: 11.01.2021).
14. Предсказание финансовых временных рядов [Электронный ресурс]:
Лекция. / Национальный открытый университет ИНТУИТ. URL:
https://intuit.ru/studies/courses/2255/139/lecture/20571 (дата
обращения: 15.12.2020).
15. Тренды и классификации [Электронный ресурс]: Онлайн курс по
специализации «Анализ данных». / Образовательный сайт Coursera. URL: https://www.coursera.org/learn/trendy-klassifikatsii (дата
обращения: 09.12.2020).
16. Avriel M. Nonlinear Programming: Analysis and Methods. - Dover Publishing, 2003. - 544 p. - ISBN 978-0-486-43227-4.
17. Diebold F.X. Elements of Forecasting. - 4th ed. - Thomson South-Western, 2007. - 748 p.
18. Diebold F.X., Mariano R.S. Comparing Predictive Accuracy // Journal of Business and Economic Statistics, vol. 13. - 1995. - pp. 253-265.
19. Gorodetski A., Ilyashenko Yu. Minimal and strange attractors, International Journal of Bifurcation and Chaos, vol. 6, no. 6. - 1996. - pp. 1177-1183.
20. Haykin Simon S. Neural Networks: A Comprehensive Foundation. - Prentice Hall, 1999. - 842 p. - ISBN 978-0-13-273350-2.
21. Huang, et al. The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis. // Proc. R. Soc. Lond. A. - 1998. - Т. 454. - С. 903-995.
22. Nocedal J., Stephen J. Numerical Optimization. - 2nd edition. - USA: Springer, 2006. - 683 p. - ISBN 978-0-387-30303-1.
23. Rhodes C., Morari M. The false nearest neighbors’ algorithm: An overview. Computers & Chemical Engineering. - 1991 - S1149-S1154. doi: 10.1016/S0098-1354(97)87657-0.
24. Shumway R. H., Stoffer D. S. Time Series Analysis and Its Applications: With R Examples // Springer 3rd ed. 2011 edition. - 2011. - 596 p. - ISBN 978-1441978646.