Что такое предсказание временных рядов

Содержание
  1. Что такое прогнозирование временных рядов?
  2. Временные ряды
  3. Описание против предсказания
  4. Анализ временных рядов
  5. Прогнозирование временных рядов
  6. Компоненты временного ряда
  7. Проблемы прогнозирования
  8. Примеры прогнозирования временных рядов
  9. Резюме
  10. Полное руководство по анализу и прогнозированию временных рядов
  11. автокорреляция
  12. Сезонность
  13. стационарность
  14. Как проверить, если процесс является стационарным
  15. Моделирование временных рядов
  16. Скользящая средняя
  17. Экспоненциальное сглаживание
  18. Двойное экспоненциальное сглаживание
  19. Трип экспоненциальное сглаживание
  20. Сезонная авторегрессионная интегрированная модель скользящего среднего (SARIMA)
  21. Проект 1 — Прогнозирование цены акций
  22. Импортировать данные
  23. Очистить данные
  24. Исследовательский анализ данных (EDA)
  25. Скользящая средняя
  26. Экспоненциальное сглаживание
  27. Двойное экспоненциальное сглаживание
  28. моделирование
  29. Sarima
  30. Сравните прогнозируемую цену с фактическими данными
  31. Проект 2 — Предсказать качество воздуха с Пророком
  32. Импортировать данные
  33. Очистка данных и разработка функций
  34. моделирование

Что такое прогнозирование временных рядов?

Дата публикации 2016-12-02

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

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

В этом посте вы узнаете прогнозирование временных рядов.

Прочитав этот пост, вы узнаете:

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

Временные ряды

Обычный набор данных для машинного обучения — это набор наблюдений.

Время играет роль в обычных наборах данных машинного обучения.

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

Набор данных временного ряда отличается.

Временной ряд добавляет явную зависимость порядка между наблюдениями: измерение времени.

Это дополнительное измерение является как ограничением, так и структурой, которая обеспечивает источник дополнительной информации.

Временной ряд — это последовательность наблюдений, сделанных последовательно во времени.

Описание против предсказания

У нас разные цели в зависимости от того, заинтересованы ли мы в понимании набора данных или в прогнозировании.

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

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

Анализ временных рядов

При использовании классической статистики основной задачей является анализ временных рядов.

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

Это часто включает в себя предположения о форме данных и разложение временных рядов на составные компоненты.

Качество описательной модели определяется тем, насколько хорошо она описывает все доступные данные и интерпретацию, которую она обеспечивает, чтобы лучше информировать проблемную область.

Основной целью анализа временных рядов является разработка математических моделей, которые обеспечивают правдоподобные описания на основе выборочных данных.

Прогнозирование временных рядов

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

Более современные области фокусируются на теме и называют ее прогнозированием временных рядов.

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

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

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

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

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

Компоненты временного ряда

Анализ временных рядов предоставляет набор методов для лучшего понимания набора данных.

Возможно, наиболее полезным из них является разложение временного ряда на 4 составных части:

  1. уровень, Базовое значение для ряда, если бы оно было прямой.
  2. тенденция, Необязательное и часто линейное увеличение или уменьшение поведения ряда с течением времени
  3. Сезонность, Необязательные повторяющиеся шаблоны или циклы поведения во времени.
  4. Шум, Дополнительная изменчивость в наблюдениях, которая не может быть объяснена моделью.

У всех временных рядов есть уровень, у большинства есть шум, и тенденция и сезонность являются дополнительными.

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

Можно считать, что эти составляющие компоненты каким-то образом объединяются, чтобы обеспечить наблюдаемые временные ряды. Например, они могут быть добавлены вместе, чтобы сформировать модель следующим образом:

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

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

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

Проблемы прогнозирования

При прогнозировании важно понимать вашу цель.

Используйте метод Сократа и задайте много вопросов, чтобы помочь увеличить специфику вашей задачи прогнозного моделирования. Например:

  1. Сколько данных вы имеете в наличии и можете ли вы собрать их все вместе?Большее количество данных часто оказывается более полезным, предлагая более широкие возможности для исследовательского анализа данных, тестирования и настройки моделей и точности моделей.
  2. Какой временной горизонт прогнозов требуется? Краткосрочный, среднесрочный или долгосрочный?Короткие временные горизонты часто легче прогнозировать с большей достоверностью.
  3. Можно ли регулярно обновлять прогнозы или делать их один раз и сохранять статичность?Обновление прогнозов по мере появления новой информации часто приводит к более точным прогнозам.
  4. На какой временной частоте требуются прогнозы?Часто прогнозы можно делать на более низких или более высоких частотах, что позволяет использовать понижающую и повышающую дискретизацию данных, что, в свою очередь, может принести пользу при моделировании.
Читайте также:  Пазлы предсказания фикс прайс

Данные временных рядов часто требуют очистки, масштабирования и даже преобразования.

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

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

Примеры прогнозирования временных рядов

Существует почти бесконечный запас проблем прогнозирования временных рядов.

Ниже приведены 10 примеров из ряда отраслей, чтобы сделать концепции анализа временных рядов и прогнозирования более конкретными.

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

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

Резюме

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

В частности, вы узнали:

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

У вас есть вопросы о прогнозировании временных рядов или об этом посте?
Задайте свои вопросы в комментариях ниже.

Источник

Полное руководство по анализу и прогнозированию временных рядов

Дата публикации Aug 7, 2019

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

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

Однако при работе с временными рядами возникают другие аспекты.

Этостационарный?

Есть лисезонность?

Целевая переменнаяавтокоррелированные?

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

Предсказывать будущее сложно.

автокорреляция

Неформально,автокорреляцияэто сходство между наблюдениями как функция временного интервала между ними.

Выше приведен пример автокорреляционного графика. При внимательном рассмотрении вы понимаете, что первое значение и 24-е значение имеют высокую автокорреляцию. Точно так же 12-е и 36-е наблюдения сильно коррелируют. Это означает, что мы будем находить очень похожие значения в каждые 24 единицы времени.

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

Сезонность

Сезонностьотносится к периодическим колебаниям. Например, потребление электроэнергии высокое в течение дня и низкое в ночное время, или продажи в Интернете увеличиваются в течение Рождества, прежде чем снова замедляться.

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

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

стационарность

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

Глядя снова на тот же сюжет, мы видим, что процесс выше является стационарным. Среднее значение и дисперсия не меняются со временем.

Зачастую цены на акции не являются стационарным процессом, поскольку мы можем наблюдать растущую тенденцию или ее волатильность со временем может возрасти (это означает, что дисперсия меняется).

В идеале мы хотим иметь стационарные временные ряды для моделирования. Конечно, не все они являются стационарными, но мы можем сделать различные преобразования, чтобы сделать их стационарными.

Как проверить, если процесс является стационарным

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

Не вдаваясь в технические подробности теста Дики-Фуллера, он проверяет нулевую гипотезу о наличии единичного корня.

Если это так, тор>0, а процесс не стационарный.

Иначе,р =0, нулевая гипотеза отклоняется, и процесс считается стационарным.

Как пример, процесс ниже не является стационарным. Обратите внимание, что среднее значение не является постоянным во времени.

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

Есть много способов смоделировать временной ряд, чтобы делать прогнозы. Здесь я представлю:

  • скользящее среднее
  • экспоненциальное сглаживание
  • ARIMA

Скользящая средняя

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

Читайте также:  Как завоевать мужчину предсказание ру

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

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

На графике выше мы применили модель скользящего среднего к 24-часовому окну. Зеленая линиясглаженныйвременной ряд, и мы можем видеть, что есть 2 пика в 24-часовой период.

Конечно, чем длиннее окно, темгладкойтенденция будет. Ниже приведен пример скользящей средней в меньшем окне

Экспоненциальное сглаживание

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

Математически экспоненциальное сглаживание выражается как:

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

Из приведенного выше графика темно-синяя линия представляет экспоненциальное сглаживание временного ряда с использованием коэффициента сглаживания 0,3, в то время как оранжевая линия использует коэффициент сглаживания 0,05.

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

Двойное экспоненциальное сглаживание

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

Вот,бетаэтокоэффициент сглаживания трендаи принимает значения от 0 до 1.

Ниже вы можете увидеть, как разные значенияальфаа такжебетавлияет на форму временного ряда.

Трип экспоненциальное сглаживание

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

Математически тройное экспоненциальное сглаживание выражается как:

гдегаммаявляется фактором сезонного сглаживания иLэто длина сезона.

Сезонная авторегрессионная интегрированная модель скользящего среднего (SARIMA)

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

Во-первых, у нас естьМодель авторегрессии AR (p), Это в основном регрессия временного ряда на себя. Здесь мы предполагаем, что текущее значение зависит от предыдущих значений с некоторой задержкой. Принимает параметрпкоторый представляет собой максимальное отставание. Чтобы найти его, мы смотрим на график частичной автокорреляции и выявляем лаг, после которого большинство лагов не являются значимыми.

В приведенном ниже примерепбудет 4.

Затем мы добавляеммодель скользящего среднего MA (q), Это принимает параметрQкоторая представляет собой наибольшее отставание, после которого другие лаги не имеют существенного значения на графике автокорреляции.

Ниже,Qбудет 4.

После мы добавляемпорядок интеграцииМне бы), Параметрdпредставляет количество различий, необходимых для того, чтобы сделать серию стационарной.

Наконец, мы добавляем последний компонент:сезонность S (P, D, Q, s), гдеsпросто длина сезона. Кроме того, этот компонент требует параметровпа такжеQкоторые так же, какпа такжеQ, но для сезонной составляющей. В заключение,Dпорядок сезонной интеграции, представляющий количество различий, необходимых для удаления сезонности из ряда.

Объединяя все, мы получаемСАРИМА (p, d, q) (P, D, Q, s)модель.

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

Это было много теории, чтобы обернуть нашу голову вокруг! Давайте применим методы, обсужденные выше, в нашем первом проекте.

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

Проект 1 — Прогнозирование цены акций

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

Вы можете взять набор данных и блокнотВот,

Как всегда, я настоятельно рекомендую вам написать код! Начни свой блокнот и пойдем!

Вы точно не разбогатеете, пытаясь предсказать фондовый рынок

Импортировать данные

Во-первых, мы импортируем некоторые библиотеки, которые будут полезны на протяжении всего нашего анализа. Также мы определяемсредняя средняя процентная ошибка (MAPE), так как это будет нашей метрикой ошибки.

Затем мы импортируем наш набор данных, и мы предшествуем первым десяти записям, и вы должны получить:

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

Очистить данные

Сначала мы удаляем ненужные записи.

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

Если вы просматриваете набор данных, вы должны увидеть:

Потрясающе! Мы готовы к поисковому анализу данных!

Исследовательский анализ данных (EDA)

Мы строим цену закрытия за весь период времени нашего набора данных.

Вы должны получить:

Очевидно, вы видите, что это нестационарныйпроцесс, и трудно сказать, есть ли какая-тосезонность,

Скользящая средняя

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

Используя временное окно 5 дней, мы получаем:

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

Тенденции легче определить сейчас. Обратите внимание, как 30-дневный и 90-дневный тренд показывают нисходящую кривую в конце. Это может означать, что акции могут понизиться в следующие дни.

Экспоненциальное сглаживание

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

Здесь мы используем 0,05 и 0,3 в качестве значений длякоэффициент сглаживания, Не стесняйтесь попробовать другие значения и посмотреть, каков результат.

Читайте также:  Предсказания по частям тела

Как вы можете видеть,альфазначение 0,05 сглаживало кривую, одновременно улавливая большинство восходящих и нисходящих трендов.

Теперь давайте использоватьдвойное экспоненциальное сглаживание.

Двойное экспоненциальное сглаживание

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

моделирование

Как было указано выше, мы должны превратить нашу серию в стационарный процесс, чтобы смоделировать ее. Поэтому давайте применим тест Дики-Фуллера, чтобы проверить, является ли это стационарным процессом:

Тебе следует увидеть:

По критерию Дики-Фуллера временной ряд, что неудивительно, нестационарен. Также, глядя на график автокорреляции, мы видим, что он очень высокий, и кажется, что нет явной сезонности.

Поэтому, чтобы избавиться от высокой автокорреляции и сделать процесс стационарным, давайте возьмем первое отличие (строка 23 в блоке кода). Мы просто вычитаем временной ряд из себя с задержкой в ​​один день, и мы получаем:

Потрясающе! Наша серия теперь стационарная, и мы можем начать моделирование!

Sarima

Теперь для SARIMA мы сначала определим несколько параметров и диапазон значений для других параметров, чтобы сгенерировать список всех возможных комбинаций p, q, d, P, Q, D, s.

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

Как только это будет сделано, мы распечатаем краткую информацию о лучшей модели, и вы должны увидеть:

Потрясающе! Наконец, мы прогнозируем цену закрытия следующих пяти торговых дней и оцениваем MAPE модели.

В этом случае у нас MAPE 0,79%, что очень хорошо!

Сравните прогнозируемую цену с фактическими данными

Теперь, чтобы сравнить наш прогноз с фактическими данными, мы берем финансовые данные изYahoo Financeи создайте фрейм данных.

Затем мы строим график, чтобы увидеть, насколько мы далеки от фактических цен закрытия:

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

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

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

Теперь давайте представим Пророка в Facebook. Это инструмент прогнозирования, доступный как на Python, так и на языке R. Этот инструмент позволяет как экспертам, так и не экспертам производить высококачественные прогнозы с минимальными усилиями.

Давайте посмотрим, как мы можем использовать его во втором проекте!

Проект 2 — Предсказать качество воздуха с Пророком

Название говорит само за себя: мы будем использовать Prophet, чтобы помочь нам предсказать качество воздуха!

Полный блокнот и набор данных можно найтиВот,

Давайте сделаем некоторые прогнозы!

Импортировать данные

Как всегда, мы начинаем с импорта некоторых полезных библиотек Затем мы печатаем первые пять строк:

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

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

Поэтому нам нужно очистить данные.

Очистка данных и разработка функций

Здесь мы начнем с анализа нашего столбца даты, чтобы превратить его в «даты».

Затем мы превращаем все измерения в поплавки.

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

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

Наконец, мы агрегируем данные по неделям, потому что это даст более плавную тенденцию для анализа.

Мы можем построить тенденции каждого химического вещества. Здесь мы показываем, что NOx.

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

моделирование

Мы сосредоточимся исключительно на моделировании концентрации NOx. Поэтому мы удалим все остальные несоответствующие столбцы.

Затем мы импортируем Пророка.

Пророк требует, чтобы столбец даты был названД.С.и особенность столбца, который будет названYпоэтому мы вносим соответствующие изменения.

На данный момент наши данные выглядят так:

Затем мы определяем тренировочный набор. Для этого мы продержимся последние 30 записей для прогнозирования и проверки.

После этого мы просто инициализируем Prophet, подгоняем модель к данным и делаем прогнозы!

Вы должны увидеть следующее:

Вот,yhatпредставляет прогноз, в то время какyhat_lowerа такжеyhat_upperпредставляют нижнюю и верхнюю границу прогноза соответственно.

Пророк позволяет легко составить прогноз и мы получим:

Как вы можете видеть, Пророк просто использовал прямую нисходящую линию, чтобы предсказать концентрацию NOx в будущем.

Затем мы проверяем, есть ли у временного ряда какие-либо интересные особенности, такие как сезонность:

Здесь Пророк выявил только тенденцию к снижению без сезонности.

Оценивая производительность модели путем вычисления ее средней абсолютной процентной ошибки (MAPE) и средней абсолютной ошибки (MAE), мы видим, что MAPE составляет 13,86%, а MAE — 109,32, что не так уж и плохо! Помните, что мы не настроили модель вообще.

Наконец, мы просто строим прогноз с его верхней и нижней границами:

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

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

Ссылка: Большое спасибо за этостатьяза удивительное введение в анализ временных рядов!

Источник

Оцените статью