Прогнозирование финансовых временных рядов на много шагов вперед
Задача предиктивной кластеризации и прогнозирования хаотических временных рядов на много шагов вперед. Реализация алгоритма прогнозирования. Ограничение ошибки и непрогнозируемые точки. Исследование результатов для финансового ряда и ряда Лоренца.
Рубрика | Математика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 01.12.2019 |
Размер файла | 5,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное государственное автономное образовательное учреждение высшего образования
"Национальный исследовательский университет "Высшая школа экономики"
Факультет компьютерных наук
Магистерская диссертация
по направлению подготовки 01.04.02 Прикладная математика и информатика
образовательная программа «Науки о данных»
Прогнозирование финансовых временных рядов на много шагов вперед
Студент
А.А. Воронцов
Научный руководитель
д-р ф.-м. наук, проф., доцент ДАДИИ
В.А. Громов
Москва 2019
Содержание
Введение
1. Постановка задачи
1.1 Задача прогнозирования на много шагов вперед
1.2 Задача предиктивной кластеризации
2. Реализация алгоритма прогнозирования
2.1 Шаблоны
2.2 Прогнозирование с использованием шаблонов
2.3 Прогнозирование с использованием априорной информации
2.4 Ограничение ошибки и непрогнозируемые точки
3. Результаты вычислительного эксперимента
3.1 Данные
3.2 Результаты для ряда Лоренца
3.3 Результаты для финансового ряда
Выводы
Используемая литература
Введение
кластеризация прогнозирование финансовый лоренц
Прогнозирование хаотических временных рядов - задача, которая стоит перед разными сферами науки и бизнеса уже долгое время. Прогноз погоды, курсов валют, продаж в компании - все это попытки предсказать временной ряд. Точный прогноз временного ряда на много шагов вперед может дать бизнесу серьезные конкурентные преимущества, или позволить ученым смоделировать какое-либо природное явление и провести эксперимент.
В математике под временным рядом понимается последовательно измеренные, через некоторые промежутки времени данные. Прогнозирование - попытка предсказать эти данные для будущего, основываясь на данных настоящего и прошлого. В настоящее время данные накапливаются в огромном объеме, а также человечество располагает значительными вычислительными мощностями для обработки накопленных данных. Все это позволяет ученым и инженерам решать задачи прогнозирования хаотических временных рядов и осуществлять прогноз за достаточно малое время.
Существует несколько подходов к прогнозированию временных рядов. Подходы могут основываться как на знании самой динамической системы, порождающей ряд, так и на умении находить в данных зависимости и их генерализации.
В ходе данной дипломной работы будут описаны рассмотрены способы предиктивной кластеризации - подхода, который основывается на разбиении временного ряда на шаблоны и их кластеризации. В качестве алгоритма кластеризации временного ряда будет рассмотрен алгоритм Zahn, который использует graph-based методы для получения кластеров. Также будет разработана система для распределенной обработки данных временного ряда и последующего прогнозирования. Система будет протестирована на модельном временном ряде Лоренца. В дальнейшем полученная система также будет применяться для прогнозирования финансовых временных рядов (курсов BTC/USD за июль - октябрь 2018 года).
Теоретические сведения
Динамическая система - множество элементов, для которых задана их функциональная зависимость во времени и положении в фазовом пространстве. Чаще всего динамическая система с дискретным или непрерывным временем описывается системой дифференциальных уравнений. Аттрактором динамической системы называется некоторое компактное подмножество из ее фазового пространства, к которому стремятся все ее траектории в бесконечном времени.
Когда речь идет о прогнозировании временных рядов, считается, что ряд порожден некоторой динамической системой. Ряды делятся на два типа:
Регулярные временные ряды. В этом случае порождающую динамическую систему можно восстановить
Хаотические временные ряды. В этом случае систему восстановить очень сложно.
О хаотических временных рядах и пойдет речь в данной работе. Стоит отметить некоторые их свойства:
Горизонт прогнозирования. Если для регулярного ряда возможно восстановить порождающую его динамическую систему и сделать прогноз на сколь угодно большое количество шагов вперед, то для хаотического временного ряда систему восстановить нельзя, и количество шагов, на которое можно сделать прогноз ограничено. Это количество вычислимо и является свойством ряда.
Странный аттрактор. Если для регулярного ряда аттрактор порождающей динамической системы является многообразием, то для хаотического ряда это не так. Такой аттрактор называется странным, а его структура будет фрактальной.
Показатель, который отличает хаотические ряды от регулярных является старший показатель Ляпунова. Для начала следует привести определение устойчивости траектории по Ляпунову. Траектория неустойчива по Ляпунову, если
Решение хаотической системы будет неустойчиво по Ляпунову, а его расходимость будет экспоненциальна и равна:
Лямбда и будет старшим показателем Ляпунова. Для хаотических рядов он отрицательный, для регулярных - положительный, в нуле происходит квазипериодическое движение. Горизонт прогнозирования связан со старшим показателем Ляпунова как:
Существующие подходы к прогнозированию временных рядов
Г. Малинецкий описывает две задачи анализа временных рядов - задачу идентификации и задачу прогноза. Решая задачу идентификации исследователь отвечает на вопрос, как был порожден данный временной ряд. В задаче прогноза исследователь пытается на основе данных временного ряда в прошлом предсказать будущие значения ряда. Различные подходы к прогнозированию временных рядов были предложены в работе В. Безручко и Д. Смирнова. Предложены методы восстановления временных зависимостей, а также реконструкции фазовой траектории. Особое внимание уделяется способом оценки полученных методов. Более
Существуют разные подходы к прогнозированию хаотических временных рядов. Формализованные методы, которые основываются не на интуитивных предположениях, а на математических моделях можно разделить на две основные группы:
Модели предметной области
Модели временных рядов
Для построения моделей предметной области используются законы предметной области. Чаще всего это физические процессы. Например для прогнозирования погоды применяется модель, которая содержит уравнения динамики жидкости и термодинамики. Сюда же можно отнести такие прогнозные модели, как прогноз изменения численности населения, прогноз изменения уровня сахара в крови. Все модели предметной области базируются на системах дифференциальных уравнений, которыми описываются определенные законы и процессы данной предметной области.
Модели временных рядов пытаются найти в данных прошлого определенные паттерны, по которым будет предсказываться ряд в будущем. В данном случае прогнозная модель будет зависеть от данных прошлого для ряда. Преимущество таких моделей в том, что они не зависят от предметной области и могут применяться в различных ситуациях, в то время как модели предметной области моделируют какую то конкретную ситуацию. В работе Д. Гамильтона по анализу временных рядов описаны различные свойства и характеристики рядов, а также многие современные модели и области их применения. К моделям временных рядов относят:
Регрессионные модели
Авторегрессионные модели
Модели экспоненциального сглаживания
Марковские модели
Модели, основанные на деревьях решений
Модели предиктивной кластеризации.
В данной работе пойдет речь о применении алгоритмов предиктивной кластеризации к задаче прогнозирования временного ряда на много шагов вперед. Будет рассмотрено два временных ряда, предложен и реализован алгоритм кластеризации временного ряда, с помощью которого и будет даваться прогноз.
Прогнозирование на основе кластеризации
Задача предиктивного моделирования (прогнозирования) является задачей обучения с учителем. Цель - предсказать наиболее точное значение целевой переменной. Задача кластеризации, напротив является алгоритмом обучения без учителя. Цель кластеризации - разбить все данные на группы (кластеры) наиболее схожих между собой объектов. Под схожестью подразумевается то, что расстояние между объектами одного кластера должно быть минимальным. Метрика расстояния выбирается отдельно. Это например может быть евклидово расстояние, расстояние dynamic time wrapping (DTW), описанное в работе П. Сенина.
Комбинированием этих двух задач и является предиктивная кластеризация. О таком подходе писали авторы Б. Зенко и С. Джероски. В данной работе задача прогнозирования воспринималась, как разделение множества объектов на группы с однородной целевой переменной, а кластеризация - разделение множества объектов на группы с однородными нецелевыми переменными. Предиктивная кластеризация позволяет выделить бикластеры, в которых множество объектов делится на группы со схожими парами целевых и нецелевых переменных.
Формально, задачу кластеризации можно поставить следующим образом:
Дано:
,
Найти:
К современным методам кластеризации относятся:
Графовые методы
Таксономия (иерархическая кластеризация)
Статистические методы (k-means, EM).
В данной работе пойдет речь о графовых методах и их применении к кластеризации временных рядов. Простейший графовый алгоритм кластеризации - алгоритм поиска связных компонент. Его можно описать следующим образом.
Дано:
Повторять:
Полученные компоненты связности - искомые кластера.
Оценка качества кластеризации
С. Джероски и И. Славков в своей работе по анализу временных рядов с помощью предиктивной кластеризации говорят об оценке качества полученных кластеров.
Во-первых качество кластеров можно оценивать по внутрикластерному и межкластерному расстоянию. Также в работе говорится об оценке для дисперсии внутри кластеров. В статье А. Саас и А. Гитарт также идет речь о кластеризации временных рядов. В качестве способов оценки качества приводятся варианты нормализованной Hubert статистики или энтропии.
Алгоритм кластеризации Zahn
В ходе практической работы для кластеризации временного ряда применялся алгоритм кластеризации Zahn. Изначально он приведен в следующем виде: по всем точкам (z - векторам) строится полносвязный граф с весом ребра - расстоянием между двумя вершинами. Строится минимальное остовное дерево для данного графа. Далее все ребра кластеризуются на хорошие и плохие. Плохие ребра удаляются из минимального остовного дерева, хорошие остаются. Получившиеся компоненты связности - искомые кластера. Очевидно, что построение полного графа на большом множестве точек, а также вычисление минимального остовного дерева по нему - ресурсоемкая задача. Поэтому исходный алгоритм был модифицирован следующим образом.
Для каждого z - вектора ищем k ближайших к нему с помощью k-dimensional tree. По всем полученным точкам строим граф.
Строим минимальное остовное дерево
Удаляем ребра, вес которых больше, чем
Удаляем компоненту связности, если количество элементов в ней меньше min_size
Полученные компоненты связности - искомые кластера
По сути, данный алгоритм является модификацией алгоритма кластеризации методом поиска компонент связности. Для построения минимального остовного дерева может быть использован алгоритм Прима или алгоритм Краскала.
1. Постановка задачи
В ходе данной работы будет рассматриваться задача прогнозирования хаотического временного ряда на много шагов вперед. Формально данная задача описывается следующим образом:
Дан временной ряд с дискретным временем - X(t)
Метрика оценивания ошибки, которую необходимо минимизировать
Требуется подобрать такой алгоритм, который предсказывает следующие n точек ряда и минимизирует ошибку
В качестве прогнозирующего алгоритма будет использован алгоритм Zahn. Функции ошибок будут использоваться следующие:
Mean absolute error (MAE)
Root mean squared error (RMSE)
Mean squared error (MSE)
Прогнозирование будет осуществляться на модельном ряде Лоренца и финансовом ряде - данные по курсу BTC/USD за 2017 год. Будут подобраны оптимальные параметры алгоритма и оптимальное количество шагов, на которое будет даваться прогноз.
Алгоритм Zahn не реализован в пакетах прикладного ПО для анализа данных и библиотеках машинного обучения, поэтому он будет реализован с нуля на языке Python. Помимо самого алгоритма также будет реализована система распределенных вычислений по шаблонам временного ряда и система прогнозирования по нескольким шаблонам сразу.
1.1 Задача прогнозирования на много шагов вперед
Задача предсказания временного ряда на много шагов вперед звучит следующим образом.
Дано:
Найти:
Сразу стоит сделать оговорку, что предполагается, что для выбранного алгоритма предсказания (Zahn) возможны непрогнозируемые точки. Такие точки можно включать в прогноз или помечать как непрогнозируемые точки. Отдельно может также ставиться задача классификации точек на прогнозируемые или непрогнозируемые.
1.2 Задача предиктивной кластеризации
В случае предиктивной кластеризации мы оперируем таким понятием, как z-векторы временного ряда. Это множество точек ряда, которое получено при применении к ряду определенного правила (шаблона). Таким образом наши объекты для кластеризации - это z-векторы данного ряда. Далее аналогично задаче кластеризации выбирается функция расстояния и формируются кластеры из данных объектов. Следом требуется выбрать смещение - количество точек от z-вектора, которые будут предсказываться. Чтобы предсказать новые точки для z-вектора, требуется найти ближайший к нему кластер и взять средние точек по кластеру, как предсказания.
Итак, формально задача предиктивной кластеризации:
Дано:
Найти:
Предсказания
2. Реализация алгоритма прогнозирования
Данная глава будет посвящена описанию реализации алгоритма и особенностям его обучения и применения. Алгоритм будет реализован на языке Python. Также будут использованы зависимости:
Numpy
Scipy
Scikit-learn
LightGBM
Для поиска минимального остовного дерева в графе будет использоваться алгоритм Краскала.
Ребра графа сортируются по возрастанию
Выбираем наименьшее из оставшихся ребер, проверяем есть ли цикл с помощью алгоритма UNION-FIND. Если цикла нет, то добавляем ребро в остовное дерево.
Повторяем шаг 2 до тех пор, пока в минимальном остовном дереве не будет связности.
Алгоритм UNION-FIND оперирует структурой данных disjoint set. Это разбиение набора элемеентов на непересекающиеся подмножества. Весь алгоритм состоит из двух операций:
Find - для элемента находим его подмножество
Union - объединение двух подмножеств в одно.
Алгоритм Краскала для нахождения минимального остовного дерева в графе уже реализован в пакете scipy, и будет использоваться в задаче.
2.1 Шаблоны
Основная идея, которая лежит в основе прогнозирования по шаблонам - идея о том, что в ряде могут существовать точки, которые по каким-либо причинам трудно спрогнозировать. Назовем их непрогнозируемыми точками. При прогнозе линейном, то есть точка за точкой, при встрече непрогнозируемой точки наш прогноз закончится, поскольку для предсказания следующей точки нам нужно будет предсказать данную. Предсказание по шаблонам позволяет решить данную проблему, задавая расстояние между точками шаблона больше 1. Как было сказано ранее, шаблон это определенное правило, которое формирует из точек ряда z-векторы. В случае работы с рядом Лоренца и финансовым рядом длина z-вектора будет равна 5. Также объект (класс в Python) шаблона будет иметь следующие параметры:
Расстояние между 1 и 2 точкой
Расстояние между 2 и 3 точкой
Расстояние между 3 и 4 точкой
Расстояние между 4 и 5 точкой
Таким образом будет получен z - vector - для данного ряда и первой точки, отбирается расстояние для четырех следующих.
Всего используется 10 шаблонов с следующими расстояниями:
1,1,1,1
1,1,1,2
1,1,2,1
1,2,1,1
2,1,1,1
1,1,2,2
1,2,2,1
2,2,1,1
1,2,2,2
2,2,2,1
Для каждого шаблона обучается свой алгоритм. Параметры алгоритма:
k ближайших соседей для точки - 30
alpha - 0.1336766
мерой расстояния между z-векторами является евклидово расстояние
минимальное количество векторов в кластере min_size - 5
При обучении с такими параметрами на 700000 точках ряда Лоренца получаем следующие результаты:
Таблица 1
Шаблон |
Количество кластеров |
Средний размер кластера |
Максимальный размер кластера |
|
1,1,1,1 |
23794 |
25.04 |
894 |
|
1,1,1,2 |
23739 |
24.71 |
720 |
|
1,1,2,1 |
23901 |
24.76 |
873 |
|
1,2,1,1 |
24193 |
24.48 |
820 |
|
2,1,1,1 |
23849 |
24.89 |
826 |
|
1,1,2,2 |
24232 |
24.04 |
1381 |
|
1,2,2,1 |
24198 |
24.03 |
891 |
|
2,2,1,1 |
24370 |
24.1 |
766 |
|
1,2,2,2 |
24089 |
23.85 |
1447 |
|
2,2,2,1 |
24022 |
23.97 |
2136 |
Данные кластеры - наборы из 5-мерных z-векторов. Для предсказания выбрано смещение равное 1, то есть для каждого z-вектора будет предсказываться последняя его точка. Также для каждого кластера построен его центр (среднее).
2.2 Прогнозирование с использованием шаблонов
Для прогнозирования по шаблонам на n шагов вперед реализован следующий алгоритм.
Входные данные - ряд, стартовая точка
Для начала работы алгоритма по всем шаблонам необходимо взять количество точек ряда, равное длине z-вектора - 1
Для каждой следующей точки из n:
Выбираем для каждого шаблона z-вектор таким образом, чтобы данная точка была в нем последней
Для неполного z-вектора без последней точки ищем ближайший центр кластера в каждом шаблоне
Берем последнюю точку данного центра кластера как предсказание для шаблона
Финальное предсказание - среднее значение для предсказаний по всем шаблонам
Получив прогноз на n точек вперед можно опять подставить 7 точек из ряда и прогнозировать n следующих точек. Также возможны модификации алгоритма для определения непрогнозируемых точек:
При поиске ближайшего центра кластера необходимо учитывать расстояние до него
Если расстояние больше некого eps - порога отсечения, то данный шаблон считает точку непрогнозируемой и не участвует в прогнозе
Если все шаблоны считают точку непрогнозируемой, то она будет непрогнозируема для всего ряда и прогноз для нее не будет получен
2.3 Прогнозирование с использованием априорной информации
Также существует не совсем честный способ прогнозирования точек временного ряда - прогноз с использованием априорной информации, или прогноз с демоном. Задача ставится тем же образом, что и для обычного прогноза, но только теперь нам предлагается воспользоваться подсказками некоторого демона, который не знает точного значения прогнозируемой точки, но может ответить на вопрос - лежит ли точка в заданной eps-окрестности реального значения или нет.
Такой подход позволяет давать более эффективный прогноз, выбирая для каждой точки только те кластеры, которые предсказывают значение с допустимой погрешностью.
Демон позволяет эффективно выбрать шаблоны. В дальнейшем демона можно симулировать классификатором, который для каждого шаблона и точки будет предсказывать, является ли данная точка для данного шаблона непрогнозируемой или нет. Классификатор можно обучить на отдельной валидационной выборке.
2.4 Ограничение ошибки и непрогнозируемые точки
Дадим определение непрогнозируемой точки.
Дано:
Точка непрогнозируема, если:
Определение непрогнозируемых точек для шаблона - простая задача классификации. В качестве объясняющих переменных тут будет выступать номер шага и расстояние до ближайшего кластера в шаблоне. При множестве шаблонов такой классификатор позволит на каждом шаге отбирать наиболее релевантные.
3. Результаты вычислительного эксперимента
В данном разделе описаны результаты применения алгоритма Zahn к предсказанию временных рядов на много шагов вперед. Предсказания даются с демоном и без. Измерены ошибки в зависимости от количества шагов, на которые дается предсказание. Для начала следует дать описание временных рядов, на которых проводились эксперименты.
3.1 Данные
Как уже было описано выше, два ряда, для которых будет даваться прогноз - ряд Лоренца и курс BTC/USD за 2017 год. Ниже они будут рассмотрены более подробно.
Динамической системой Лоренца называется система вида:
Параметры:
Численное решение данной системы дифференциальных уравнений находится методом Рунге-Кутты 4 порядка с шагом интегрирования 0,1. В качестве временного ряда будет взято решение x(t). Объем выборки - 1 миллион точек, из них первые 700000 - обучающая выборка, оставшиеся 300000 - тестовая.
Решение x(t) выглядит следующим образом:
Рис. 1
Следует сразу заметить, что в отличие от большинства реальных рядов, ряд Лоренца не содержит тренды, что делает работу с ним легче. В качестве обучающей выборки будут взяты первые 700000 точек ряда. В качестве тестовой - следующие 300000 точек.
Некоторые статистики ряда (1 млн. точек):
Среднее значение - 0.013179193140330663
Максимум - 18.87310892116911
Минимум - -18.679133343801137
Распределение значений:
Рис. 2
Финансовый ряд - курс BTC/USD за 2018 год. Каждая точка ряда - сделка на бирже по конкретной цене. Поскольку сделки происходят в хаотическом порядке, шаг ряда не специфицирован. Точность измерений - до тысячных долей секунды. Некоторые статистики:
Первая сделка - 6.07.2018 22:59 GMT
Последняя сделка - 11.10.2018 22:59 GMT
Средний интервал между сделками - 0.4 секунды
Максимальный интервал между сделками - 39 часов
Минимальный интервал между сделками - 0 секунд
Количество сделок (точек) - 18652212
Средняя сумма сделки - 0.19 BTC
Максимальная сумма сделки - 191.39 BTC
Минимальная сумма сделки - 0.000001 BTC
Средний курс USD/BTC - 6825.93
Минимальный курс - 5880
Максимальный курс - 8491.77
Первые 100000 точек ряда.
Рис. 3
Данный ряд содержит тренды, а интервалы между точками различны. Поэтому при работе с ним в первую очередь требуется привести все точки к одному интервалу. Поскольку алгоритм Zahn по своему устройству чувствителен к трендам, необходимо будет это учесть и либо обучать тренды отдельно, либо ряд детрендировать. Также ряд будет приведен к постоянному промежутку времени, равному 8 секунд.
Для финансового ряда вычислен ряд первых разностей, который является стационарным рядом (проверен с помощью обобщенного теста Дикки-Фуллера). Соответственно можно сделать вывод о том, что финансовый ряд - интегрированный ряд первого порядка. Ряд первых разностей представлен ниже.
Рис. 4
3.2 Результаты для ряда Лоренца
Для ряда Лоренца было обучено 10 различных алгоритмов на 10 шаблонах. Предсказания осуществлялись на 10, 20, 30, 40 и 50 шагов вперед. Предсказания проводились с демоном и без. Измерялись ошибки MAE, MSE, RMSE. Результаты представлены ниже на графиках.
Предсказания без демона:
500 точек, 10 шагов вперед
Рис. 5
500 точек, 20 шагов вперед
Рис. 6
500 точек, 30 шагов вперед
Рис. 7
500 точек, 40 шагов вперед
Рис. 8
500 точек, 50 шагов вперед
Рис. 9
Как можно заметить из графиков, при предсказании на 10 шагов вперед, ошибка минимальна и предсказания практически совпадают с реальными значениями. В дальнейшем ошибка увеличивается с числом шагов.
Предсказания с использованием априорной информации, eps = 0.2:
500 точек, 10 шагов вперед
Рис. 10
500 точек, 20 шагов вперед
Рис. 11
500 точек, 30 шагов вперед
Рис. 12
500 точек, 40 шагов вперед
Рис. 13
500 точек, 50 шагов вперед.
Рис. 14
Как можно заметить, предсказания с демоном дают лучший результат. Посмотрим на зависимость ошибки от количества шагов вперед:
MAE
Рис. 15
MSE
Рис. 16
RMSE
Рис. 17
Ошибка вычисляется для предсказаний и значений, нормированных на максимальное значение ряда.
3.3 Результаты для финансового ряда
Во-первых, финансовой ряд, в отличие от тестового ряда нуждается в предобработке. Пайплайн предобработки можно описать так:
Приводим ряд к одинаковым временным промежуткам (8 секунд)
Применяем локальную нормализацию для избавления от трендов - вычитаем каждую точку из максимума для каждого z - вектора
Ограничиваем сверху значения 90-м персентилем
Такая последовательность действий позволяет избавиться от трендов. Первые 100 точек ряда выглядят следующим образом. Ограничение сверху необходимо для ускорения поиска ближайших соседей, поскольку мы убираем выбросы и расстояние между векторами в среднем уменьшается.
Рис. 18
Распределение значений:
Рис. 19
Поскольку финансовый ряд прогнозировать труднее, чем модельный, для него будет проводиться прогноз только на 10 шагов вперед, с использованием классификатора непрогнозируемых точек. Для работы с финансовым рядом взят шаблон с расстояниями 1,1,1,1, для которого будет обучен классификатор непрогнозируемых точек на отдельной валидационной выборке, объем которой равен 20000 точек.
В качестве классификатора будет использоваться градиентный бустинг над решающими деревьями, реализованный в пакете lightgbm. Оцениваться классификатор будет с помощью ROC-AUC метрики, которая равняется количеству верно упорядоченных пар (0,1) для бинарной классификации и ACCURACY, которая равняется доле верно предсказанных объектов. Оценка будет проводиться на кросс-валидации из 5 фолдов, размер тестового сета для каждого фолда равен 0.25.
Последовательность действий:
Для валидационной выборки из 20 тысяч точек решить задачу прогнозирования на много шагов вперед.
Для каждого прогнозного значения сохранить номер шага, расстояние до ближайшего кластера и модуль отклонения от реального значения.
Ошибки будут распределены так:
Рис. 20
Целевая переменная - 0, если величина ошибки меньше 1, в остальных случаях 1. Объясняющие переменные - номер шага и расстояние до ближайшего центра кластера. Для всей выборки из 20000 точек, предсказания давались на 11110 точек, что составит нашу выборку для обучения классификатора. Из этих 11110 точек целевая переменная принимает значение 1 в 5486 случаях, то есть можно говорить о сбалансированной классификации.
Результаты кросс-валидации:
Таблица 2
FOLD |
ROC-AUC |
ACCURACY |
|
1 |
0.721 |
0.719 |
|
2 |
0.708 |
0.708 |
|
3 |
0.682 |
0.681 |
|
4 |
0.708 |
0.708 |
|
5 |
0.719 |
0.719 |
Далее алгоритм прогнозирования на много шагов вперед модифицируется следующим образом:
Получаем z-вектор
Ищем ближайший центр кластера
Пытаемся предсказать прогнозируемость точки
Если точка прогнозируема - делаем прогноз по кластеру, если нет, помечаем ее непрогнозируемой.
Для следующих 100 точек тестовой выборки при предсказании на 10 шагов вперед удалось предсказать 36 точек. На графике они помечены зеленым.
Рис. 21
Обучающая выборка как и в случае с рядом Лоренца составила 700000 точек, из которых удалось получить 551 кластер. Очевидно, что для финансвого ряда необходимо учитывать непрогнозируемые точки и брать отдельно большую выборку для обучения алгоритма.
Ниже представлена ошибка MAE в зависимости от количества шагов вперед для прогноза. Были даны предсказания обычные, с классификатором, с использованием априорной информации с различными значениями eps.
Рис. 22
Выводы
В ходе данной работы была решена задача прогнозирования хаотических временных рядов на много шагов вперед с помощью предиктивной кластеризации. Описан и реализован алгоритм Zahn, который использует mst-based кластеризацию z-векторов временного ряда. Приведено определение непрогнозируемых точек алгоритма и способ их нахождения.
Полученный алгоритм был протестирован на ряде Лоренца с использованием различных шаблонов z-векторов, а также на реальном финансовом ряде курса BTC/USD в 2018 году. Был представлен и протестирован способ прогнозов с демоном.
Для улучшения текущих результатов необходимо:
Обучить классификатор, который бы предсказывал непрогнозируемые точки и грамотно выбирал шаблоны.
Реализовать больше различных шаблонов и настроить переключение между ними.
Для финансового ряда необходимо больше данных для обучения и возможно другие временные промежутки.
Также необходимо адаптировать алгоритм для работы с трендами.
На модельном ряде Лоренца алгоритм показал довольно неплохие результаты и способность прогнозировать на большое количество шагов вперед. Для финансового ряда алгоритм требует доработки.
Используемая литература
1. Г. Малинецкий, А. Потапов Современные проблемы нелинейной динамики, М.: Эдиториал УРСС, 2000.
2. G. Benettin, L. Galgani, A. Giorgilli и J. Strelcin «Lyapunov characteristic exponents for smooth dynamical systems and for hamiltonian systems,» Mechanica, № 15, 1980.
3. Aghabozorgi, S. Wah Time-series clustering-A decade review [Text] / S. Aghabozorgi, A.S. Shirkhorshidi, T.Y. Wah // Information Systems. - 2015. - Vol. 53
4. V.A. Gromov Chaotic time series prediction with employment of ant colony optimization [Text] / V.A. Gromov, A.N. Shulga // Expert Systems with Applications. - 2012. - Vol. 39, № 9.
5. V.A. Gromov Chaotic time series prediction and clustering methods [Text] / V.A. Gromov, E.A. Borisenko// Neural Computing and Applications. - 2015. - №. 2.
6. B. Zenko, S. Dћeroski, J. Struyf Learning Predictive Clustering Rules, 2005.
A. Saas, A. Guitart, A. Periбсez Discovering Playing Patterns: Time Series Clustering of Free-to-Play Game Data, 2017.
7. S. Dћeroski, I. Slavkov, V. Gjorgjioski Analysis of Time Series Data with Predicting Clustering Trees.
8. Zahn, C.T. Graph-theoretical methods for detecting and describing gestalt clusters. IEEE Trans. Comput. C20, 68-86, 1971.
9. Безручко Б.П., Смирнов Д.А. Математическое моделирование и хаотические временные ряды, Саратов: ГосУНЦ Колледж, 2005.
10. P. Senin Dynamic Time Warping Algorithm Review, 2009.
11. Zakaria, J. Clustering time series using unsupervised-shapelets [Text] / J. Zakaria, A. Mueen, E. Keogh // 12th International Conference on Data Mining: IEEE Computer Society. - 2012. - P. 785-794.
Размещено на Allbest.ru
...Подобные документы
Ознакомление с математическим аппаратом анализа временных рядов и моделями авторегрессии. Составление простейших моделей авторегрессии стационарных временных рядов. Оценка дисперсии и автоковариации, построение графика автокорреляционной функции.
лабораторная работа [58,7 K], добавлен 14.03.2014Понятие об основной тенденции ряда динамики, ее сущность и визуальное представление, методы анализа. Аналитическая оценка уравнения тренда. Характеристика, использование различных методов для выделения тренда временных рядов, прогнозирование показателей.
курсовая работа [207,2 K], добавлен 04.03.2013Изучение изменений анализируемых показателей во времени как важнейшая задача статистики. Понятие рядов динамики (временных рядов). Числовые значения того или иного статистического показателя, составляющего ряд динамики. Классификация рядов динамики.
презентация [255,0 K], добавлен 28.11.2013Определение условий сходимости положительного ряда и описание свойств гармонических рядов Дирихле. Изучение теорем сравнения рядов и описание схемы Куммера для вывода из нее признаков сравнения ряда. Вывод признаков сравнения Даламбера, Раабе и Бертрана.
курсовая работа [263,6 K], добавлен 14.06.2015Исследование сходимости числового ряда. Использование признака Даламбера. Исследование на сходимость знакочередующегося ряда. Сходимость рядов по признаку Лейбница. Определение области сходимости степенного ряда. Сходимость ряда на концах интервала.
контрольная работа [131,9 K], добавлен 14.12.2012Главная задача спектрального анализа временных рядов. Параметрические и непараметрические методы спектрального анализа. Сущность понятия "временный ряд". График оценки спектральной плотности для окна Дирихле, при центрированном случайном процессе.
курсовая работа [332,8 K], добавлен 17.09.2009Постановка задачи прогнозирования количества отказов радиоэлектронного оборудования на следующий год в аэропорту. График общей тенденции отказов. Использование метода временных рядов. Выделение тренда, применение метода скользящих средних значений.
курсовая работа [109,9 K], добавлен 19.12.2009Решение неравенств и определение области сходимости рядов по признаку Даламбера и теореме Лейбница для знакопеременных рядов. Условия и пределы сходимости ряда. Исследование границ интервала. Проверка условия Лейбница при знакочередующемся ряде.
контрольная работа [127,2 K], добавлен 07.09.2010Исследование первого момента состоятельной оценки взаимной спектральной плотности. Задачи спектрального анализа временных рядов. Графики оценки для временного ряда, представляющего собой последовательность наблюдений температуры воздуха в городе Бресте.
курсовая работа [324,9 K], добавлен 16.08.2011Определение степенного ряда. Теорема Абеля как определение структуры области сходимости степенного ряда. Свойства степенных рядов. Ряды Тейлора, Маклорена для функций. Разложение некоторых элементарных функций в ряд Маклорена. Приложения степенных рядов.
реферат [89,3 K], добавлен 08.06.2010Описание признака сходимости числовых рядов Даламбера, решение задач на исследование сходимости. Формулировка радикального признака сходимости Коши знакоположительного ряда в предельной форме. Доказательство знакочередующихся и знакопеременных рядов.
реферат [190,9 K], добавлен 06.12.2010Понятие знакочередующихся рядов. Последовательность частичных сумм четного и нечетного числа членов. Исследование сходимости ряда. Проверка выполнения признака Лейбница. Погрешность при приближенном вычислении суммы сходящегося знакочередующегося ряда.
презентация [82,8 K], добавлен 18.09.2013Изучение понятия числового ряда и его суммы. Особенности сходящихся и расходящихся рядов. Число e, как сумма ряда. Критерий Коши сходимости ряда. Алгебраические операции и сходимость. Ряды с неотрицательными членами. Интегральный признак Коши-Маклорена.
методичка [514,1 K], добавлен 26.06.2010Закон сохранения количества чисел Джойнт ряда в натуральном ряду чисел как принцип обратной связи чисел в математике. Структура натурального ряда чисел. Изоморфные свойства рядов четных и нечетных чисел. Фрактальная природа распределения простых чисел.
монография [575,3 K], добавлен 28.03.2012Особенности применения степенных рядов для вычислений с различной степенью точности значений функций и определенных интегралов. Рассмотрение примеров решения ряда задач этим математическим методом с условием принятия значений допустимой погрешности.
презентация [68,4 K], добавлен 18.09.2013Определение интервала сходимости ряда. Сходимость ряда на концах интервала по второму признаку сравнения положительных рядов и по признаку Лейбница. Решение дифференциальных уравнений по методу Бернулли. Методы нахождения неопределённого интеграла.
контрольная работа [73,0 K], добавлен 24.04.2013Построение многофакторной корреляционно-регрессионной модели доходности предприятия: оценка параметров функции регрессии, анализ факторов на управляемость, экономическая интерпретация модели. Прогнозирование доходности на основе временных рядов.
дипломная работа [5,1 M], добавлен 28.06.2011Область сходимости степенного ряда. Нахождение пределов, вычисление определенных интегралов. Применение степенных рядов в приближенных значениях. Изучение особенностей решения дифференциальных уравнений. Достаточное условие разложимости функции в ряд.
курсовая работа [1,3 M], добавлен 21.05.2019Числовой ряд - бесконечная последовательность чисел, соединенных знаком сложения. Сумма n первых членов ряда. Функция натурального аргумента. Свойства сходящихся и расходящихся рядов. Понятие и формула расчета n-ного остатка. Поиск суммы исходного ряда.
презентация [123,7 K], добавлен 18.09.2013Основные понятия теории рядов. Методы суммирования расходящихся рядов. Суть метода степенных рядов, теоремы Абеля и Таубера. Метод средних арифметических, взаимоотношение между методами Пуассона-Абеля и Чезаро. Основные методы обобщенного суммирования.
курсовая работа [288,0 K], добавлен 24.10.2010