Введение 4
1. Постановка задачи 7
2. Требования к системе 8
2.1. Возможность изменения алгоритмов 8
2.2. Обработка исходных данных 8
2.3. Возможность моделирования шума 9
2.4. Представление результатов работы алгоритмов 9
2.5. Требования к пользовательскому интерфейсу 9
3. Обзор 10
3.1. Обзор алгоритмов 10
3.2. Сравнение существующих решений 15
3.3. Выводы 16
4. Архитектура системы 18
5. Реализация 21
5.1. Режим скользящего окна 21
5.2. Интервал прогнозирования 21
5.3. Вычисление момента изменения тренда 22
5.4. Модификация SPS 23
6. Эксперименты 26
6.1. Данные и параметры алгоритмов 26
6.2. Анализ определения тренда и построения доверительных
интервалов 26
6.3. Анализ моментов изменения тренда 27
6.4. Выводы 28
7. Заключение 30
Список литературы 32
Термин «прогноз» происходит от греческого слова «prognosis», которое переводится как предвидение или предсказание. Под этим термином обычно понимают исследование перспектив развития некоторого
явления. Чаще всего такие явления описываются временными рядами
и включают в себя два обязательных элемента –– отметку времени и
значение показателя ряда.
Анализ временных рядов является мощным инструментом для извлечения ценной информации из последовательно поступающих данных. В нашем изменяющемся мире временные ряды применяются в
различных областях –– от экономики и финансов до задач медицины.
Однако существуют сценарии, когда непрерывный мониторинг показателей может оказаться весьма дорогостоящим или решения необходимо
принимать оперативно. В таких ситуациях объём данных для анализа
чаще всего критически мал.
Примером может служить контроль надежности подшипников качения в машинах. Онлайн-мониторинг, применяемый для крупномасштабных и дорогостоящих установок, требует значительных затрат на
оборудование. Другой подход контроля предполагает измерения с более длительными интервалами времени. Главным достоинством этой
стратегии является ее более низкая стоимость, потому что все машины компании могут быть проконтролированы ограниченным числом
устройств. Именно поэтому эта стратегия широко распространена для
машин среднего и малого размера на промышленных предприятиях. В
данном случае история каждой машины содержит значительно меньше данных. Также, например, в финансах или биржевой торговле рыночные условия меняются молниеносно. На финансовых рынках цены
акций могут колебаться в зависимости от различных факторов, и для
успешного трейдинга необходимо моментально анализировать данные
и принимать решения о покупке или продаже. Помимо этого возможен случай, когда проведение измерений требует значительных затрат
времени. Например, при контроле прочности динамических материа-
4лов [22].
Временные ряды обладают различными статистическими характеристиками, которые влияют на результаты анализа. В первую очередь
влияет модель представления членов временного ряда [7]. Одно из известных представлений выглядит следующим образом:
xt = Tt + εt,
где Tt является компонентом тренда, а εt –– случайным членом.
В некоторых временных рядах помимо этих двух компонент выделяют также сезонность. Для её учета обычно вводят фиктивные колебания. Следует отметить, что часто статистические данные публикуются
с поправкой на сезонность, так что учитывать ее не нужно. Например,
квартальные данные U.S.GDP1 публикуются с исключением сезонности.
Второй член представления –– это неопределённость, под которой
обычно понимают случайную ошибку в измерениях, шум. Этот шум
может быть вызван различными факторами, такими как ошибки измерений, аномальные события или непредсказуемые изменения в окружающей среде. Для корректных результатов необходимо учитывать, что
многие временные ряды собраны в реальных условиях, где факторы
шума неизбежны.
Тренд описывает направление распространения данных, поэтому
обнаружение моментов изменения направлений тренда во временных
рядах очень важно в принятии стратегических решений и адаптации
к изменяющимся условиям. Эти моменты могут свидетельствовать о
существенных изменениях, таких как экономические рецессии, изменения в потребительских предпочтениях или технологические инновации.
Благодаря своевременному обнаружению этих изменений, организации
могут адаптировать свои стратегии, минимизировать потери и максимизировать возможности для роста и развития. Точное определение
моментов изменения тренда также помогает улучшить качество про-
1https://datatopics.worldbank.org/world-development-indicators/ — cайт Всемирного банка (дата обращения: 20.12.2023)
5гнозирования, что необходимо для успешного управления ресурсами,
финансами и производственными процессами. Важность этой задачи
подчёркивается не только в области научных исследований, но и в практическом применении.
Эффективное управление данными шума и учет его влияния позволят разработать более точные и надежные модели определения тренда,
способные адаптироваться к различным условиям и обеспечивать более
достоверные результаты анализа. Такие алгоритмы, как метод знаковозмущённых сумм [4], могут быть полезны для построения достоверных прогнозов и доверительных интервалов. В условиях ограниченных
ресурсов, когда необходимо оперативно принимать решения, создание
системы, которая позволит выделять тренд, бороться с шумом во временных рядах, становится крайне важным.
В ходе данной работы были получены следующие результаты.
1. Сформулированы требования к системе: определены режимы работы с данными (обработка данных в режиме реального времени,
генерация данных, обработка готовых наборов данных); сформулированы требования по настройке алгоритмов и некоторые другие.
2. Перед реализацией системы были проведены:
• исследование следующих алгоритмов для предсказания временных рядов и определения тренда в них: метод Хольта, линейная регрессия, авторегрессионное интегрированное скользящее среднее, фильтр Калмана, метод знаковозмущенных
сумм;
• обзор существующих решений: открытые системы Orange и
KNIME, библиотечные пакеты forecast и Prophet;
• сделаны выводы о том, что существующие решения не удовлетворяют сформулированным требованиям; было решено
реализовать представленные в обзоре алгоритмы.
3. Разработана архитектура системы: определены основные компоненты и механизмы их взаимодействия, выбраны технологии – решено разрабатывать веб-приложение (Python, Javascript) с использованием библиотек Flask (серверная часть), React (клиентская
часть), Material UI (компоненты клиентской части), d3.js (отрисовка графиков).
4. Создан прототип системы, использующий для предсказания и определения тренда скользящее окно, построение доверительного интервала и вычисление моментов изменения тренда.
5. Проведены эксперименты, которые показали, что для различных
типов задач и условий могут быть предпочтительны разные ал-
30горитмы, и важно тщательно подбирать параметры и методы в
зависимости от поставленной задачи:
• лучшую точность при большом числе данных в задаче определения тренда показала модель ARIMA;
• в задаче определения моментов изменения тренда наилучшим образом продемонстрировал себя метод SPS при разном
числе входных данных;
• наилучшие показатели по доле фактических значений, попадающих в предсказанный доверительный интервал, продемонстрировали ARIMA и SPS (при этом метод SPS даёт
максимальную ширину доверительных интервалов);
• ширина доверительных интервалов оказалась наименьшей у
регрессии, что указывает на более узкие предсказанные диапазоны, но это также может означать повышенный риск недооценки вариативности данных.
Исходный код доступен по ссылке на репозиторий4 Github.
Результаты работы были представлены на конференции «Современные технологии в теории и практике программирования» и опубликованы в сборнике её материалов.
[1] Alteryx. — https://www.alteryx.com/.— Accessed: 14.12.2023.
[2] Amibroker.— https://www.amibroker.com/.— Accessed:
14.12.2023.
[3] Angular. — https://angular.io/. — Accessed: 24.04.2024.
[4] Csaji Balazs, Campi Marco, Weyer Erik. Sign-Perturbed Sums: A New System Identification Approach for Constructing Exact Non- Asymptotic Confidence Regions in Linear Regression Models // Signal Processing, IEEE Transactions on.— 2015. — 01.— Vol. 63.— P. 169— 181.
[5] Django Framework.— https://www.djangoproject.com/.— Ac¬cessed: 24.04.2024.
[6] Flask Framework.— https://flask.palletsprojects.com/en/3.0. x/. — Accessed: 24.04.2024.
[7] Hamilton James D. Time Series Analysis. - PRINCETON, NEW JER¬SEY : PRINCETON UNIVERSITY PRESS, 1994.
[8] Hyndman Rob J., Athanasopoulos George. Forecasting: principles and practice. — OTexts, 2014.
[9] KNIME. — https://www.knime.com/.— Accessed: 14.12.2023.
[10] Kalman Rudolph Emil. A New Approach to Linear Filtering and Pre¬diction Problems // Transactions of the ASME-Journal of Basic Engi¬neering. — 1960. — Vol. 82, no. Series D. — P. 35-45.
[11] Material UI.— https://mui.com/material-ui/.— Accessed: 24.04.2024.
[12] MetaTrader. — https://www.metatrader5.com/ru. — Accessed:
14.12.2023.
[14] Prophet.— https://facebook.github.io/prophet/.— Accessed:
14.12.2023.
[15] SAS (Statistical Analysis System). — https://www.sas.com/en_us/ software/stat.html. — Accessed: 14.12.2023.
[16] TIBCO Spotfire.— https://www.spotfire.com/.— Accessed:
14.12.2023.
[17] TradingView. — https://www.tradingview.com/. — Accessed:
14.12.2023.
[18] Vue.js. — https://vuejs.org/. — Accessed: 24.04.2024.
[19] d3,js. — https://d3js.org/. — Accessed: 24.04.2024.
[20] forecast.— https://github.com/robjhyndman/forecast.— Ac-cessed: 14.12.2023.
[21] Л. И. Нафикова О. Н. Граничив. Прототип системы определения тренда во временных рядах // Современные технологии в теории и практике программирования: Сборник материалов научно-практической конференции студентов, аспирантов и молодых ученых. — Санкт-Петербург : Санкт-Петербургский политехнический университет Петра Великого, 2024. — P. 76-77. — EDN VHXLBC.
[22] Марина Волкова. Рандомизированные алгоритмы
оценивания параметров инкубационных процессов в условиях неопределённостей и конечного числа наблюдений : Диссертация / Волкова Марина ; СПбГУ. — 2018.
Xtt—min(p,q) = Ц- + ^t + ^2 ®i£t—i + ^2 0iXt—i,
i=1 i=1