Найти тему
Властелин машин

Автокорреляционная функция временных рядов с Python

Автокорреляция является числовым отражениям связи между лаговыми значениями временного ряда. Рассмотрим, особенности ее подсчета и практической реализации в библиотеке Statsmodels.

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

Автокорреляцию между ts и его сдвигом на k можно посчитать так:

-2

или более практичный вид:

-3

Числовые коэффициенты в числителе и знаменателе считают по-разному, так как у основного ряда T членов, а лагового - (T-k). Кроме того, часто полагают, что ряд стационарный, соответственно, матожидания и дисперсии исходного ряда и его смещения можно считать равными. С учетом этих допущений формулу можно упростить до:

-4

Проверим уравнение на практике. Воспользуемся функцией acf из модуля statsmodels.tsa.stattools:

-5

А теперь посчитаем вручную:

-6

Результаты совпадают. С параметром adjusted=True в acf формула примет вид:

-7

-8

-9