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

Введение

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

  • Извлечение данных временных рядов
  • Визуализация данных временных рядов
  • Протектор, сезонные и остаточные изменения
  • Моделирование данных временных рядов

Ссылка на код GitHub: Прогнозирование и прогнозирование фондового рынка с использованием LSTM или ARIMA

Ссылка на Google Collab: https://colab.research.google.com/drive/1wCnUVvk78aeFz7XCNhgw6_5TU84ieOUa?usp=sharing

Извлечение данных

Акции компании представляют собой доли собственности в этой компании. Когда вы покупаете акции, вы становитесь частичным владельцем и имеете право на активы и доходы компании. Я использовал Yahoo Finance, пакет Python, который может извлекать данные фондового рынка компаний, включая даты, цену закрытия, цену открытия, скорректированную цену и объем. Вы можете извлекать биржевые данные за разные промежутки времени, в своем проекте я брал ежедневную информацию о фондовом рынке за последние 10 лет.

Важно отметить, что если мы попытаемся проанализировать набор данных panda с атрибутом datetime, важно отметить, что нам нужно преобразовать столбец в формат даты и времени из формата объекта. Добавление parse_date = [‘date_column_name’] преобразует столбец в правильный формат.

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

Визуализация временных рядов

визуализация временных рядов является важным шагом в анализе данных. Большинство данных временных рядов строятся с использованием линейных графиков, где ось X представляет время, а ось Y — прогнозируемое значение (в нашем случае это цена закрытия).

Закономерности в данных временных рядов

Данные временных рядов имеют шаблоны, нам нужно понять и извлечь эти шаблоны, чтобы мы могли моделировать алгоритмы, чтобы мы могли лучше прогнозировать их. Временные ряды можно разбить на базовый уровень + тренд + сезонность + ошибка/шум. Ниже приводится подробное объяснение каждого термина.

Тенденции. Тенденции относятся к долгосрочным моделям или изменениям данных с течением времени. Тренд может быть восходящим (указывающим на рост), нисходящим (указывающим на спад) или горизонтальным (указывающим на стабильность). Анализ тенденций помогает определить общее направление и величину изменений в данных. Анализ тенденций может быть полезен для прогнозирования будущих значений и понимания основных факторов, влияющих на поведение данных.

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

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

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

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

Мультипликативные и аддитивные временные ряды:

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

Мультипликативный временной ряд:

Значение = базовый уровень x тенденция x сезонность x ошибка

Аддитивные временные ряды: в аддитивных временных рядах компоненты тренда, сезонности и ошибок взаимодействуют аддитивным образом. Это означает, что сезонные колебания и тенденция не зависят от уровня данных. Например, если сезонный шаблон остается постоянным независимо от значений данных, это указывает на аддитивный временной ряд.

Определение того, является ли временной ряд мультипликативным или аддитивным, имеет решающее значение для правильного моделирования и прогнозирования.

Добавленные временные ряды:

Значение = базовый уровень + тенденция + сезонность + ошибка

Если вы внимательно посмотрите на остатки аддитивного разложения, то увидите, что в них остался какой-то паттерн. Однако мультипликативное разложение выглядит довольно случайным, и это хорошо. Поэтому в идеале для этой конкретной серии следует предпочесть мультипликативное разложение.

Стационарные и нестационарные наборы данных:

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

Преобразование нестационарных данных в стационарные:

Преобразование нестационарного набора данных в стационарный часто требует применения преобразований для удаления тенденций и сезонности. Два распространенных метода:

  • Разница. Различие включает в себя определение разницы между последовательными наблюдениями для удаления компонента тренда. Это можно сделать один или несколько раз, пока данные не станут стационарными.
  • Декомпозиция. При декомпозиции временные ряды разделяются на компоненты тренда, сезонности и ошибок. Удалив тренд и сезонность, полученные остатки можно проанализировать как стационарный временной ряд.

Преобразовывая нестационарные данные в стационарную форму, он становится пригодным для применения различных моделей временных рядов и проведения значимого анализа.

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

Работа со стационарными и нестационарными данными:

Расширенный тест Дики-Фуллера (ADF) и тест Квятковского-Филлипса-Шмидта-Шина (KPSS) — два широко используемых статистических теста при анализе временных рядов. Они служат разным целям и дают представление о стационарности временного ряда. Вот объяснение каждого теста:

Расширенный тест Дики-Фуллера (ADF):

Цель. Тест ADF используется для определения наличия единичного корня во временном ряду. Единичный корень подразумевает, что временной ряд является нестационарным, что означает, что он демонстрирует тенденции или другие закономерности, зависящие от времени.

Гипотезы. Тест ADF сравнивает нулевую гипотезу единичного корня с альтернативной гипотезой стационарности. Результатом теста является тестовая статистика и p-значение.

Тестовая интерпретация. Если p-значение ниже выбранного уровня значимости (например, 0,05), то есть основания отклонить нулевую гипотезу единичного корня и сделать вывод, что временной ряд является стационарным. И наоборот, если p-значение выше уровня значимости, недостаточно доказательств для отклонения нулевой гипотезы, что указывает на нестационарность.

Тест Квятковского-Филлипса-Шмидта-Шина (КПСС):

Цель. Тест KPSS используется для определения стационарности временного ряда путем изучения наличия трендов или других детерминированных компонентов.

Гипотезы. Тест KPSS сравнивает нулевую гипотезу о стационарности с альтернативной гипотезой о нестационарности. Результатом теста является тестовая статистика и p-значение.

Тестовая интерпретация. Если p-значение ниже выбранного уровня значимости (например, 0,05), то есть основания отклонить нулевую гипотезу о стационарности и сделать вывод о нестационарности временного ряда. И наоборот, если p-значение выше уровня значимости, недостаточно доказательств для отклонения нулевой гипотезы, что указывает на стационарность.

Таким образом, тест ADF в первую очередь фокусируется на обнаружении наличия единичного корня (нестационарности) во временном ряду, в то время как тест KPSS исследует наличие трендов и других детерминированных компонентов для определения стационарности. Оба теста предоставляют ценную информацию для понимания свойств стационарности временных рядов и часто используются вместе для принятия обоснованных решений относительно моделирования и анализа временных рядов.

Модели временных рядов:

Модель Арима

Модель ARIMA (авторегрессионное интегрированное скользящее среднее) является популярным и широко используемым методом анализа и прогнозирования временных рядов. Он сочетает в себе компоненты авторегрессии (AR), разности (I) и скользящего среднего (MA) для захвата закономерностей и зависимостей во временном ряду. Вот объяснение каждого компонента:

Компонент авторегрессии (AR):

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

Разностный (I) компонент:

  • Компонент разности используется, чтобы сделать временной ряд стационарным, беря разницу между последовательными наблюдениями.
  • Различие помогает удалить тенденции и сезонность из данных, упрощая моделирование и анализ.
  • Порядок дифференцирования, обозначенный буквой «d», представляет собой количество применений дифференцирования для достижения стационарности.

Компонент скользящей средней (MA):

  • Компонент MA моделирует зависимость между текущим наблюдением и заданным количеством запаздывающих ошибок прогноза.
  • Он фиксирует краткосрочные колебания и случайные толчки во временном ряду.
  • Порядок компонента MA, обозначенный «q», представляет количество запаздывающих ошибок прогноза, включенных в модель.

Модель ARIMA объединяет эти компоненты для представления данных временного ряда. Модель обозначается как ARIMA(p, d, q), где:

  • «p» представляет порядок авторегрессионного компонента.
  • «d» представляет порядок различия.
  • «q» представляет порядок компонента скользящего среднего.

Модель ARIMA оценивается с использованием данных исторических временных рядов, а параметры (p, d, q) определяются с помощью таких методов, как информационный критерий Акаике (AIC) или байесовский информационный критерий (BIC). После того, как модель подобрана, ее можно использовать для прогнозирования и предсказания будущих значений временного ряда. Ниже приведен наш график того, как наши данные фондового рынка Apple Inc соответствовали модели ARIMA.

Хотя модель ARIMA (авторегрессивная интегрированная скользящая средняя) широко используется в анализе и прогнозировании временных рядов, она также имеет определенные ограничения и недостатки. Вот некоторые из недостатков модели ARIMA:

Чувствительность к параметрам модели:

  • Модель ARIMA требует спецификации трех параметров: p (порядок компонента авторегрессии), d (порядок разности) и q (порядок компонента скользящего среднего).
  • Выбор оптимальных значений для этих параметров может быть сложной задачей и часто требует ручной настройки или методов поиска по сетке. Неправильный выбор параметров может привести к неточным прогнозам.

Сложность в управлении сезонностью:

  • Базовая модель ARIMA явно не предназначена для обработки сезонных данных в данных временных рядов.
  • Сезонные модели могут значительно повлиять на поведение временных рядов, и ARIMA может столкнуться с трудностями при точном улавливании и моделировании этих закономерностей.
  • Дополнительные методы, такие как сезонное дифференцирование или модели SARIMA (сезонный ARIMA), необходимы для эффективного учета сезонности.

Ограниченная гибкость моделирования:

  • Модель ARIMA предполагает линейные отношения и стационарные данные, которые могут не выполняться для всех временных рядов.
  • Сложные нелинейные отношения и изменяющиеся во времени закономерности не могут быть адекватно отражены только с помощью ARIMA.
  • Расширенные модели, такие как нелинейные варианты ARIMA или подходы машинного обучения, могут больше подходить для учета таких сложностей.

Отсутствие возможности адаптации в реальном времени:

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

Сложность обработки крупномасштабных данных:

  • Модели ARIMA требуют больших вычислительных ресурсов и могут стать непрактичными при работе с крупномасштабными наборами данных временных рядов.
  • Оценка параметров модели и прогнозирование могут занять много времени, особенно для длинных временных рядов или высокочастотных данных.
  • Ограниченный горизонт прогноза:
  • Модели ARIMA обычно лучше подходят для краткосрочных и среднесрочных прогнозов.
  • По мере увеличения горизонта прогноза точность прогнозов ARIMA может ухудшиться, и прогнозы могут стать менее надежными.

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

Модель глубокого обучения LSTM

Модель долговременной кратковременной памяти (LSTM) представляет собой тип рекуррентной нейронной сети (RNN), которая особенно эффективна для анализа временных рядов и последовательной обработки данных. LSTM преодолевает некоторые ограничения традиционных RNN, что делает его популярным выбором для моделирования и прогнозирования данных временных рядов. Вот объяснение LSTM и его преимуществ перед традиционными RNN:

Архитектура LSTM:

  • Сети LSTM предназначены для захвата долгосрочных зависимостей и решения проблемы исчезновения/взрыва градиента, с которой сталкиваются традиционные RNN.
  • Ключевым элементом LSTM является его ячейка памяти, которая хранит информацию в длинных последовательностях и контролирует поток информации через вентили.
  • LSTM имеет три первичных ворот: входные ворота, ворота забывания и выходные ворота. Эти ворота регулируют поток информации в ячейку памяти и из нее, позволяя LSTM выборочно запоминать или забывать информацию.

Обработка долгосрочных зависимостей:

  • Традиционные RNN изо всех сил пытаются зафиксировать долгосрочные зависимости в последовательных данных, поскольку они страдают от проблемы исчезающего градиента. Это ограничивает их способность сохранять и распространять информацию в длинных последовательностях.
  • LSTM решают эту проблему с помощью своих ячеек памяти и механизмов шлюза. Ячейка памяти позволяет сети хранить информацию в течение длительных периодов времени, а ворота регулируют поток информации, позволяя сохранять важную информацию и забывая не относящуюся к делу информацию.
  • Эта способность фиксировать долгосрочные зависимости делает LSTM особенно эффективными при моделировании и прогнозировании сложных временных закономерностей, что делает их подходящими для анализа временных рядов.

Улучшенный градиентный поток и эффективность обучения:

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

Сбор контекстной информации:

  • LSTM могут собирать и запоминать соответствующую информацию из прошлых наблюдений, что позволяет им включать ценную контекстную информацию в прогнозы.
  • Это контекстуальное понимание помогает LSTM делать точные прогнозы при анализе временных рядов, поскольку они могут выявлять закономерности, тенденции и зависимости, которые традиционные RNN могут с трудом уловить.

Таким образом, модели LSTM хорошо подходят для анализа временных рядов благодаря их способности фиксировать долгосрочные зависимости, обрабатывать исчезающие/взрывающиеся градиенты и сохранять контекстную информацию. Их закрытая архитектура и ячейки памяти делают их более эффективными, чем традиционные RNN, для захвата сложных закономерностей и повышения точности прогнозирования.

Вот наши данные об акциях Apple Inc, которые прогнозируются с помощью простой модели LSTM.

Заключение

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

Следуйте за мной:

LinkedIn: https://www.linkedin.com/in/rohitsanjay00/

Инстаграм: https://www.instagram.com/theaiplusblog

GitHub: https://www.github.com/rohitsanjay00