Обработка финансовых серий для машинного обучения

При анализе временных рядов наличие грязных и беспорядочных данных может изменить наши рассуждения и выводы. Это верно, особенно в этой области, потому что временная зависимость играет решающую роль при работе с временными последовательностями.

С шумом или выбросами следует обращаться осторожно, следуя специальным решениям. В этой ситуации пакет tsmoothie может помочь нам сэкономить много времени при подготовке временных рядов для нашего анализа. Tsmoothie - это библиотека Python для сглаживания временных рядов и обнаружения выбросов, которая может обрабатывать несколько серий в векторизованном виде. Это полезно, потому что может обеспечить необходимые шаги предварительной обработки, такие как шумоподавление или удаление выбросов, сохраняя временную структуру, присутствующую в наших необработанных данных.

В этом посте мы используем эти уловки для улучшения задачи кластеризации. Точнее, мы пытаемся идентифицировать некоторые изменения в финансовых данных, применяя неконтролируемый подход. В конце концов, мы ожидаем указать на четкие закономерности в ценах закрытия, которые можно использовать для проверки скрытого поведения рынка.

ДАННЫЕ

Как было сказано ранее, мы работаем с финансовыми временными рядами. Существует множество инструментов или готовых наборов данных, которые предоставляют и хранят финансовые данные. Для наших целей мы используем набор данных, собранный из Kaggle. Данные о запасах за 2000–2018 гг. - это очищенная коллекция цен на акции с 2000 по 2018 г., включающая около 39 различных акций. Он ежедневно сообщает об объемах, ценах открытия, максимума, минимума и закрытия. Мы ориентируемся на цены закрытия.

В целях демонстрации мы рассматриваем цену акций Amazon, но те же результаты появляются и в других биржевых сигналах.

Сглаживание временного ряда

Первым шагом в нашем рабочем процессе является предварительная обработка временных рядов. Наша стратегия интуитивно понятна и эффективна. Учитывая временной ряд цен закрытия, мы разбиваем его на небольшие скользящие части. Затем каждую деталь гладят, чтобы удалить выбросы. Процесс сглаживания важен для уменьшения шума, присутствующего в наших сериях, и выявления истинных закономерностей, которые могут появиться с течением времени.

Tsmoothie предлагает различные техники сглаживания для нашей цели. Он также имеет встроенную утилиту для управления скользящим сглаживанием. Необработанный временной ряд делится на равные части с окнами, которые затем сглаживаются независимо. Мы выбираем сглаживание локально взвешенной диаграммы рассеяния (LOWESS) в качестве процедуры сглаживания.

LOWESS - это мощный непараметрический метод подбора сглаженной линии для заданных данных посредством одномерного или многомерного сглаживания. Он реализует регрессию для набора точек в подвижном диапазоне и взвешивает в соответствии с расстоянием вокруг значений абсцисс для вычисления порядковых значений. Выбор параметра сглаживания (альфа) часто полностью основан на «повторной пробной» основе. Специальной методики подбора его точного значения не существует. Выбор конкретного значения может привести к «чрезмерному сглаживанию» или «недостаточному сглаживанию».

Ниже приведен результат применения указанной процедуры с скользящими окнами длиной 20 (дней) и альфа равными 0,6. Другими словами, мы вычисляем НИЗКОЕ для каждого сгенерированного окна.

Кластеризация временных рядов

Второй шаг включает использование алгоритма кластеризации для определения поведения в наших временных рядах. Создание окон одинаковой длины призвано легко решить эту задачу.

Вообще говоря, кластеризация разных временных рядов в похожие группы является сложной задачей, поскольку каждая точка данных следует временной структуре, которую мы должны соблюдать, чтобы получить удовлетворительные результаты. Меры расстояния, используемые в стандартных алгоритмах кластеризации, такие как евклидово расстояние, часто не подходят для временных рядов. Более сильный подход - заменить стандартную меру расстояния метрикой для сравнения временных рядов, такой как Динамическое искажение времени.

Поиск 4 кластеров с помощью K-средних и метрики Dynamic Time Warping дает следующие результаты:

Как мы видим, очевидно создание 4 разных кластеров, которые представляют 4 различных рыночных движения: восходящий тренд (кластер 0), нисходящий тренд (кластер 1), точка поворота вниз (группа 2), точка поворота вверх (группа 3). Мы можем сделать то же самое с нашими необработанными временными окнами без вычисления сглаживания и сравнения.

Сейчас разница между 4 группами не так заметна. Сложнее дать интерпретацию сгенерированных кластеров. Способность осмысленно создавать группы на основе алгоритма кластеризации - более важная предпосылка любого неконтролируемого подхода. Если мы не можем дать объяснение, результаты не могут быть использованы для принятия решения. В этом смысле использование предварительной обработки сглаживания может помочь анализу.

РЕЗЮМЕ

В финансовой сфере концепция волатильности является фундаментальной для принятия решений. Он измеряет неопределенность, то есть риск, присутствующий на рынке. Здесь мы пошли глубже, расширив наше представление о рыночных режимах в краткосрочной перспективе. Мы определили четыре четких рыночных условия, сглаживая блоки временных рядов, чтобы лучше понять реальную динамику данных. В этом посте мы воспользовались сглаживанием временных рядов в приложении финансовой кластеризации, но этот подход действителен и полезен в некоторых других соревнованиях, связанных с анализом временных рядов.

ПРОВЕРИТЬ РЕПО НА GITHUB

Оставайтесь на связи: Linkedin