Фундаментальная часть науки о данных
Временной ряд — это последовательность наблюдений или измерений, упорядоченных во времени. Первое, что приходит на ум, когда речь заходит о временных рядах, — это цены на акции. Однако временные ряды распространены повсеместно.
Годовое количество осадков в географическом месте, ежедневный объем продаж продукта в супермаркете, ежемесячное энергопотребление фабрики, почасовые измерения химического процесса — все это примеры временных рядов.
Анализ временных рядов является фундаментальной областью науки о данных и имеет широкий спектр приложений. Если вы станете экспертом в этой области, ваши шансы получить работу специалиста по данным могут резко возрасти.
В этой статье мы рассмотрим 5 основных терминов и понятий в области анализа временных рядов.
1. Детерминированные и стохастические процессы
Наше обсуждение лучше начать с разграничения детерминированных и стохастических процессов.
Зависящие от времени значения в детерминированном процессе могут быть рассчитаны. Например, сколько у вас будет на сберегательном счете через два года, можно рассчитать, используя первоначальную сумму депозита и процентную ставку. Мы не можем говорить о случайности в детерминированных процессах.
С другой стороны, стохастические процессы основаны на случайности. Мы не можем рассчитать будущие значения в стохастическом процессе, но мы можем говорить о вероятности того, что будущие значения будут находиться в диапазоне.
Существует 90% вероятность того, что количество осадков в Калифорнии в 2022 году составит 21 дюйм. Мое предположение основано на вероятностном распределении количества осадков в Калифорнии, и, конечно же, с моим предположением связана случайность.
В этом смысле стохастический процесс можно рассматривать как совокупность упорядоченных во времени случайных величин. Тогда временной ряд является реализацией стохастического процесса.
2. Стационарность
Мы только что определили временной ряд как реализацию стохастического процесса. Стационарность означает, что статистические свойства процесса, генерирующего временной ряд, не меняются во времени.
В стационарном временном ряду мы не можем наблюдать систематическое изменение среднего значения или дисперсии. Предположим, что мы берем два интервала из стационарного временного ряда, как показано ниже:
- N наблюдений от времени t до времени t + N
- Еще N наблюдений с момента времени t + k до t + N + k
Статистические свойства этих двух интервалов очень похожи. Нет систематической разницы между средним значением или вариацией между этими двумя интервалами.
Таким образом, стационарный временной ряд не обладает
- Сезонность
- Тренд
- Периодические колебания
На следующем рисунке показан стационарный временной ряд. Значения могут быть сгенерированы случайным шумом, но мы не наблюдаем тенденции или сезонности.
На следующем рисунке показан нестационарный временной ряд. Мы можем четко наблюдать тенденцию к увеличению.
3. Функция автоковариации
Сначала мы должны понять, что означает ковариация.
Ковариация — это мера линейной зависимости между двумя случайными величинами. Он сравнивает две случайные величины в отношении отклонений от их среднего (или ожидаемого) значения.
Формула ковариации между случайными величинами X и Y:
Если значения X и Y изменяются в одном направлении (т. е. оба увеличиваются или уменьшаются), ковариация между ними будет положительной.
Я попытался объяснить ковариацию и корреляцию более подробно, если вы хотите узнать больше:
Возвращаясь к нашему обсуждению автоковариантности, вспомним, что временной ряд — это реализация стохастического процесса, который можно определить как последовательность случайных величин (X₁, X₂, X₃, …).
Предполагая, что у нас есть стационарный временной ряд, давайте возьмем две случайные величины из этого временного ряда:
- Xₜ
- Xₜ ₊ ₖ
k — это разница во времени между этими двумя случайными величинами. Функция автоковариации между этими двумя случайными величинами:
Функция автоковариации зависит только от разницы во времени (т.е. значения k), потому что мы предполагаем стационарность. Свойства стационарного временного ряда не меняются при его сдвиге во времени.
cₖ — это оценка функции автоковариации при задержке k.
Другими словами, свойства следующих частей этого временного ряда одинаковы.
- От Xₜ до Xₜ ₊ ₖ
- Из Xₜ ₊ ₙ в Xₜ ₊ ₙ ₊ ₖ
4. Коэффициенты автоковариации
Теперь у нас есть понимание функции автоковариации. Следующим шагом являются коэффициенты автоковариации, которые имеют большое значение при анализе временных рядов.
Коэффициенты автоковариации при различных временных лагах определяются как:
Функция автоковариации не может быть точно вычислена для конечного временного ряда, поэтому мы вычисляем оценку cₖ следующим образом:
Значение x-bar является средним значением выборки.
Предположим, мы хотим рассчитать коэффициент автоковариации для лаг 5 временного ряда с 50 значениями (k = 5 и N = 50).
Числитель приведенного выше уравнения рассчитывается для X₁ против X₆, X₂ против X₇, …, X₄₀ против X₄₅. Затем мы берем сумму всех комбинаций и делим на 50.
Мы можем легко вычислить коэффициенты автоковариации в R, используя подпрограмму acf.
Давайте сначала создадим случайный временной ряд с 50 значениями.
random_time_series <- ts(rnorm(50)) plot(random_time_series)
Мы можем рассчитать коэффициенты автоковариации следующим образом:
acf(random_time_series, type="covariance")
5. Автокорреляционная функция (АКФ)
Значения коэффициентов автоковариации зависят от значений во временном ряду. Не существует стандарта между коэффициентами автоковариации различных временных рядов.
Вместо этого мы можем использовать функцию автокорреляции (ACF). Коэффициент автокорреляции при задержке k можно рассчитать следующим образом.
Мы делим коэффициент автоковариации при задержке k на коэффициент автоковариации при задержке 0.
Точно так же оценка коэффициента автокорреляции может быть рассчитана следующим образом:
Значение коэффициента автокорреляции всегда находится в диапазоне от -1 до 1.
В R мы также можем использовать подпрограмму acf для вычисления коэффициентов автокорреляции.
acf(random_time_series)
Коэффициенты автокорреляции всегда начинаются с 1, потому что C₀/C₀ равно 1.
Пунктирные синие линии представляют уровни значимости. Как мы видим на графике, значения корреляции между различными временными задержками очень низкие, потому что мы генерировали эти данные случайным образом.
График ACF также называют коррелограммой.
Анализ временных рядов широко используется в науке о данных. Мы познакомились с анализом временных рядов, охватив 5 основных терминов и понятий.
Конечно, в этой области можно охватить гораздо больше, поскольку данные временных рядов имеют свою собственную динамику и требуют специальных методов анализа.
Вы можете стать членом Medium, чтобы разблокировать полный доступ к моему творчеству, а также к остальной части Medium. Если вы сделаете это, используя следующую ссылку, я получу часть вашего членского взноса без каких-либо дополнительных затрат для вас.
Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.