Тема: Разработка прототипа системы определения тренда во временном ряде
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
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
📖 Введение
явления. Чаще всего такие явления описываются временными рядами
и включают в себя два обязательных элемента –– отметку времени и
значение показателя ряда.
Анализ временных рядов является мощным инструментом для извлечения ценной информации из последовательно поступающих данных. В нашем изменяющемся мире временные ряды применяются в
различных областях –– от экономики и финансов до задач медицины.
Однако существуют сценарии, когда непрерывный мониторинг показателей может оказаться весьма дорогостоящим или решения необходимо
принимать оперативно. В таких ситуациях объём данных для анализа
чаще всего критически мал.
Примером может служить контроль надежности подшипников качения в машинах. Онлайн-мониторинг, применяемый для крупномасштабных и дорогостоящих установок, требует значительных затрат на
оборудование. Другой подход контроля предполагает измерения с более длительными интервалами времени. Главным достоинством этой
стратегии является ее более низкая стоимость, потому что все машины компании могут быть проконтролированы ограниченным числом
устройств. Именно поэтому эта стратегия широко распространена для
машин среднего и малого размера на промышленных предприятиях. В
данном случае история каждой машины содержит значительно меньше данных. Также, например, в финансах или биржевой торговле рыночные условия меняются молниеносно. На финансовых рынках цены
акций могут колебаться в зависимости от различных факторов, и для
успешного трейдинга необходимо моментально анализировать данные
и принимать решения о покупке или продаже. Помимо этого возможен случай, когда проведение измерений требует значительных затрат
времени. Например, при контроле прочности динамических материа-
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.
Результаты работы были представлены на конференции «Современные технологии в теории и практике программирования» и опубликованы в сборнике её материалов.



