Позвольте мне начать с высказывания: «Время имеет существенное значение». Я знаю, что вы, ребята, согласитесь с этим, потому что до сих пор, чему бы мы ни учились, мы никогда не принимали во внимание время. Время – один из важнейших факторов, который необходимо учитывать. Мы не можем просто продолжать предсказание и не рассматривать время как аспект. Ну, конечно, мы можем идти вперед и предсказывать, но тогда сама суть, которую принесет время, останется позади. Могут возникнуть вопросы, на которые вы не сможете ответить, например, как время влияет на наши прогнозы, почему что-то происходит именно в это время, а не в другое время. Итак, вы видите, время очень важно.

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

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

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

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

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

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

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

1- Анализировать исторические тенденции.

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

3- Мы можем осуществлять мониторинг в режиме реального времени.

4- Устраняйте проблемы по мере их появления (например, случаи COVID).

5- Определите и устраните проблему еще до ее появления.

Итак, мы подошли к вопросу, когда не использовать временные ряды?

1- Когда значения постоянны в течение определенного периода времени. Поймите это, если у нас есть значения, которые являются постоянными с заданным количеством времени, возможно ли использовать временные ряды? Нет, я думаю, не так. Ценности просто не продвигаются вперед. Это плоская линия. Мы не можем ничего анализировать из этого набора данных. Нам нужно будет использовать какую-то другую функцию, чтобы сделать какой-либо прогноз, и временные ряды не являются одной из моделей, которые мы можем использовать в этом случае.

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

Компоненты временных рядов:

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

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

1- Уровень:

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

2- Тенденция:

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

3- Сезонность:

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

4- Циклический:

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

5- Случайная ошибка:

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

Разложение временного ряда:

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

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

Как разложить временной ряд?

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

1- Аддитивная модель:

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

2- Мультипликативная модель:

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

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

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

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

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

Метрики оценки для анализа временных рядов:

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

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

1- Средняя абсолютная ошибка в процентах

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

MAPE выражает среднюю ошибку в процентах и ​​легко интерпретируется.

2- Среднеквадратическая ошибка:

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

Стационарные и нестационарные временные ряды:

Стационарный (временной) ряд — это ряд, статистические свойства которого, такие как среднее значение, дисперсия и автокорреляция, постоянны во времени. Следовательно, нестационарный ряд — это ряд, статистические свойства которого меняются со временем.

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

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

Как сделать любой временной ряд стационарным:

Чтобы сделать любой временной ряд стационарным, мы выполняем дифференцирование. Хорошо, а в чем теперь разница? Посмотрим.

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

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

Что такое корреляция?

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

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

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

Автокорреляцию можно определить как корреляцию между собой и другими значениями одной и той же переменной (признаков) (в нашем случае корреляцию между (Xt и Xt-1) (Xt и Xt-2) и т. д.), и она обозначается как ρ .

Частичная автокорреляция:

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

В автокорреляции мы находим корреляцию между текущим (xt) и следующим (xt-1) значениями. Частичная автокорреляция находит корреляцию между текущим (xt) случайным значением задержки (xt-h), поэтому корреляция в средних значениях, таких как (xt-1) (xt-2) (xt-3) …. (xt-(h-1)) учитываться не будет.

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

Белый шум:

Временной ряд является белым шумом, если переменные независимы и одинаково распределены со средним значением, равным нулю. Это означает, что все переменные имеют одинаковую дисперсию (сигма²) и каждое значение имеет нулевую корреляцию со всеми другими значениями в ряду. Хорошо, и почему это важно для нас? Посмотрим.

Белый шум — очень важное понятие во временных рядах. Причина в том, что

1- Предсказуемость:

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

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

2- Диагностика модели:

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

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

1- Модель авторегрессии (AR):

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

В модели AR значение переменной результата (Y) в некоторый момент времени t подобно «обычной» линейной регрессии, напрямую связанной с переменной-предиктором (X). Простая линейная регрессия и модели AR отличаются тем, что Y зависит от X и предыдущих значений для Y.

2- Модель скользящей средней (MA)

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

3- Модель АРИМА:

Модель ARIMA представляет собой комбинацию моделей AR и MA. ARIMA, сокращение от «Авторегрессионное интегрированное скользящее среднее», на самом деле представляет собой класс моделей, которые «объясняют» данный временной ряд на основе его собственных прошлых значений, то есть его собственных задержек и запаздывающих ошибок прогноза, так что можно использовать уравнение прогнозировать будущие значения.

Модель состоит из 3 компонентов:

p - порядок термина AR.

q – порядок срока скользящей средней.

d - количество разностей.

Мы можем подогнать модель ARIMA к данным, используя полученное значение (p, d, q), и сделать прогноз.

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

Ссылки:

https://github.com/njain5/datasciencecode

https://www.linkedin.com/in/nikhiljain93/

Использованная литература:

https://www.wikipedia.org/

https://towardsdatascience.com/

https://www.analyticsvidhya.com/

https://www.machinelearningplus.com/