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

например. Цены на фондовом рынке

Чтобы проанализировать периоды времени:

Все периоды времени должны быть равными и четко определенными, что приведет к постоянной «Частоте».

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

Заполнение нулевых значений в данных Time_series:

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

Следующие три метода в основном дают хороший результат:
1. Заполнение спереди
2. Заполнение сзади
3. Назначение средних значений.

Переднее заполнение:

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

Задняя начинка:

Мы можем присвоить значение следующих периодов.

Назначить средние значения:

Присвойте среднее значение всем отсутствующим значениям.

Разделение набора данных:

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

So,

Набор для обучения: от начала до некоторой точки отсечки.
Набор для тестирования: от точки отсечки до конца набора данных.

Шум в наборах данных:

Ниже приведены типы шума в наборах данных:

I. Белый шум
II. Случайная прогулка

Белый шум:

Особый тип временного ряда, в котором данные не следуют шаблону.
Ниже приведены некоторые условия для белого шума.
1. Постоянное среднее
2. Постоянная дисперсия
3 , Нет автокорреляции, т. е. нет четкой связи между прошлыми и настоящими значениями.

Мы можем видеть, как полные данные окружены средним значением.

Случайное блуждание:

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

Пойдем дальше,

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

Итак, вопрос в том, как мы можем узнать, являются ли данные стационарными или нестационарными

Используя следующие простые тестовые примеры, мы можем определить это.

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

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

Ниже приведены предположения о стационарности ковариации:
1. Постоянное среднее.
2. Постоянная дисперсия
3. cov(Xn, Xn+k) = cov(Xm, Xm+k)

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

Вот как мы можем выполнить тест Дика-Фуллера, используя библиотеку statsmodel.

здесь в результате первое значение является значением Т-теста.

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

Второе значение равно 0,99, это P-значение, означающее, что вероятность того, что мы сможем отвергнуть нулевую гипотезу, составляет 99%. Таким образом, данные стационарны.

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

Сезонность:

В сезонности тенденции будут проявляться на циклической основе.

например. Повышение и понижение температуры

Чтобы проверить это, есть несколько подходов, один из них - декомпозиция.

Декомпозицию мы разделили на 3 эффекта:
1. Тенденции: есть ли какая-то закономерность
2. Сезонность: присутствует ли циклический эффект
3. Остаток: ошибка прогноза

В наивной декомпозиции есть два основных подхода:
1. Аддитивный
2. Мультипликативный

В аддитивных значениях наблюдателя = Тренды + Сезонные + Остатки

и аналогично для мультипликативной декомпозиции наблюдаемое значение = Тренды * Сезонность * Остаток

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

Вот как мы можем определить сезонность.

Корреляция между прошлыми и настоящими ценностями:

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

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

Функция автокоррекции:

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

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

Основное различие между ACF и PACF заключается в том, что ACF измеряет накопленные эффекты прошлых задержек на текущие значения, в то время как PACF измеряет прямые эффекты.

Ссылка на GitHub для кода: https://github.com/Pravin1Borate/Time-Series-Analysis

Мой профиль в LinkedIn: https://www.linkedin.com/in/pravin-borate-14a43b133/

Профиль Kaggle: https://www.kaggle.com/pravinborate