Перейти к содержанию
Избранное

Калькулятор автокорреляции

Обновлено:

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

Проверьте, коррелирует ли ряд со своим собственным прошлым

Поля ввода
k
Один или несколько лагов k (то есть на сколько шагов назад сравнивать). Несколько лагов разделяйте пробелами или точками с запятой, например: 1; 2; 3; 4.
Если включено, результат будет автоматически обновляться при изменении любого значения.

Формула автокорреляции

Формула
\[ r_k = \frac{c_k}{c_0}, \qquad c_k = \frac{1}{n}\sum_{t=1}^{n-k} (x_t - \bar{x})(x_{t+k} - \bar{x}), \qquad c_0 = \frac{1}{n}\sum_{t=1}^{n} (x_t - \bar{x})^2 \]

Где:

  • \(r_k\) — выборочная автокорреляция с лагом \(k\) (корреляция ряда с его собственной копией, сдвинутой на \(k\) шагов назад)
  • \(x_t\) — наблюдение в момент времени \(t\); \(\bar{x}\) — среднее значение ряда
  • \(n\) — число наблюдений
  • \(c_k\) — выборочная автоковариация с лагом \(k\); \(c_0\) — выборочная дисперсия

Коэффициент сопоставляет каждое наблюдение с тем, что было на \(k\) шагов раньше, — предварительно оба центрируются вычитанием среднего. Деление на \(c_0\) гарантирует, что любой \(r_k\) попадает в диапазон \([-1, 1]\). При «несмещённой» оценке сумма в формуле \(c_k\) делится не на \(n\), а на \(n-k\).

Автокорреляция — пример расчёта

Пример: ряд из 12 наблюдений: 2, 4, 3, 5, 7, 6, 8, 10, 9, 11, 13, 12; лаги 1, 2, 3; стандартная оценка АКФ.

\[ \bar{x} = \frac{90}{12} = 7.5, \qquad c_0 = \frac{143}{12} = 11.9167 \]

\[ c_1 = \frac{101.75}{12} = 8.4792 \;\Rightarrow\; r_1 = \frac{8.4792}{11.9167} = 0.7117 \]

\[ c_2 = \frac{69}{12} = 5.75 \;\Rightarrow\; r_2 = 0.4825, \qquad c_3 = \frac{39.75}{12} = 3.3125 \;\Rightarrow\; r_3 = 0.2780 \]

Результат: \(r_1 = 0.7117\), \(r_2 = 0.4825\), \(r_3 = 0.2780\). Полоса белого шума на 95%-м уровне составляет \(\pm 1.96/\sqrt{12} = \pm 0.566\), поэтому значимой оказывается только автокорреляция с лагом 1: ряд инерционен — за высокими значениями идут высокие, — а автокорреляция плавно убывает, что типично для ряда с трендом.

Как пользоваться калькулятором

  1. Введите наблюдения в поле «Значения временного ряда (по порядку)», начиная с самых старых. Разделяйте числа пробелами, точками с запятой или переводами строки; запятая как десятичный разделитель допустима. Нужно минимум 3 значения.
  2. Укажите лаги в поле «Лаг(и) для расчёта» — один лаг (например, 1) или несколько через пробел или точку с запятой (например, 1; 2; 3; 4). Каждый лаг должен быть целым числом от 1 до \(n-1\).
  3. Выберите Оценку: «Стандартная АКФ (деление на n)» — то, что статистические программы строят на графиках АКФ; «Несмещённая (деление на n − k)» устраняет занижение коэффициентов на больших лагах в малых выборках.
  4. Изучите таблицу результатов: число перекрывающихся пар, использованных на каждом лаге, коэффициент \(r_k\) и выходит ли он за пределы полосы белого шума \(\pm 1.96/\sqrt{n}\).

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

Автокорреляция (серийная корреляция) показывает, насколько сильно временной ряд линейно связан с собственным прошлым. Вместо корреляции двух разных переменных здесь коррелируют сам ряд с его копией, сдвинутой назад на \(k\) шагов по времени, — этот сдвиг называют лагом. Результат \(r_k\) интерпретируется так же, как корреляция Пирсона: \(+1\) означает, что сдвинутый ряд движется в полном согласии с исходным, \(-1\) — строго противоположно, а значения около нуля говорят об отсутствии линейной связи на этом лаге.

Автокорреляция — один из первых диагностических инструментов анализа временных рядов. Коэффициент с лагом 1, заметно превышающий ноль, указывает на инерционность (значения имеют свойство подолгу задерживаться выше или ниже среднего), а сильно отрицательный — на перемежаемость: ряд «перескакивает» среднее в обе стороны. График \(r_k\) по лагам \(k\) — это автокорреляционная функция (АКФ), стандартный инструмент для идентификации моделей ARIMA и выявления сезонности.

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

Учтите, что автокорреляция улавливает только линейную зависимость. Ряд может хорошо предсказываться нелинейными правилами и при этом иметь почти нулевую автокорреляцию, так что «чистая» АКФ не доказывает независимость. Для формальной проверки того, согласуется ли весь набор автокорреляций с белым шумом, используйте портмантельный критерий, например тест Льюнга — Бокса.

Допущения, ограничения и практические советы

  • Порядок и шаг наблюдений важны. Значения должны идти в естественном хронологическом порядке и через равные промежутки времени (одинаковый шаг между наблюдениями). Перемешивание данных разрушает автокорреляцию.
  • Стационарность. Коэффициенты имеют смысл, только если среднее и дисперсия ряда примерно постоянны. Ряд с трендом завышает автокорреляции на малых лагах; при необходимости сначала возьмите разности.
  • Большие лаги ненадёжны. На лаге \(k\) используется лишь \(n-k\) перекрывающихся пар, поэтому лаги дальше примерно \(n/2\) опираются на очень малое число пар. При 12 наблюдениях всё, что выше лага 6, следует считать шумом.
  • Выбор оценки. Стандартная оценка (деление на \(n\)) всегда даёт корректную корреляционную функцию и совпадает с графиками АКФ в программах по методологии Бокса — Дженкинса. Несмещённая версия (деление на \(n-k\)) устраняет занижение на больших лагах, но теоретически может вывести коэффициенты за пределы \([-1, 1]\).
  • Полоса значимости — лишь ориентир. Границы \(\pm 1.96/\sqrt{n}\) предполагают, что истинный ряд — белый шум. Если автокорреляция реально существует, полоса занижает разброс выборочных значений на соседних лагах.
  • Выбросы искажают результат. Одно экстремальное наблюдение может доминировать и в среднем, и в произведениях в \(c_k\). Сначала проверьте данные или воспользуйтесь устойчивыми альтернативами, например ранговыми мерами корреляции.

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

Часто задаваемые вопросы

Каким должно быть «хорошее» или «нормальное» значение автокорреляции?

Универсального «хорошего» значения не существует — всё зависит от того, что вы проверяете. Для исходных данных величина \(r_k\) просто показывает, сколько линейной памяти в ряду. Для остатков модели, наоборот, нужны значения около нуля: всё, что выходит за полосу \(\pm 1.96/\sqrt{n}\), говорит, что модель не уловила всю структуру. Грубая шкала такая: \(|r_1| > 0.5\) — сильная связь, 0,2–0,5 — умеренная, ниже 0,2 — слабая.

Чем автокорреляция отличается от частной автокорреляции (ЧАКФ)?

Автокорреляция с лагом \(k\) включает и прямую связь между \(x_t\) и \(x_{t-k}\), и все косвенные связи через промежуточные лаги. Частная автокорреляция убирает эти промежуточные лаги и выделяет прямой эффект. Поэтому АКФ и ЧАКФ анализируют вместе при идентификации моделей ARIMA: медленно убывающая АКФ при единственном значимом пике ЧАКФ указывает на AR-процесс, а обратная картина — на MA-процесс.

Сколько лагов считать и какой длины должен быть ряд?

Обычное эмпирическое правило — рассматривать лаги примерно до \(n/4\), а всё, что дальше \(n/2\), считать ненадёжным: остаётся лишь \(n-k\) перекрывающихся пар. Для серьёзного анализа АКФ желательно не менее 50 наблюдений; при 10–20 точках содержательную информацию несут только первые один-два лага. Для сезонных данных включите хотя бы один-два полных сезонных цикла, например лаги до 24 для месячных данных.

Есть ли у автокорреляции единицы измерения?

Нет. Как и любой коэффициент корреляции, \(r_k\) безразмерен и всегда лежит между \(-1\) и \(+1\) — независимо от того, измерены данные в долларах, градусах Цельсия или штуках. Автоковариация \(c_k\) выражается в квадратах единиц данных, но деление на дисперсию \(c_0\) их сокращает. Отсюда же следует, что пересчёт ряда в другую шкалу (например, из Цельсия в Фаренгейты) не меняет автокорреляцию.

Можно ли посчитать это в Excel, коррелируя ряд со сдвинутой копией?

Приблизительно да: поместите ряд в столбец A, копию со сдвигом на \(k\) строк — в столбец B и примените функцию КОРРЕЛ к перекрывающемуся диапазону. Результат будет немного отличаться от стандартной АКФ: КОРРЕЛ центрирует каждый усечённый отрезок по его собственному среднему, тогда как АКФ центрирует оба по среднему полного ряда. Для длинных рядов расхождение невелико, для коротких — заметно; если нужно согласование со статистическими программами, используйте метод этого калькулятора.

Что означает отрицательная автокорреляция с лагом 1?

Отрицательный \(r_1\) указывает на перемежаемость: за значениями выше среднего обычно следуют значения ниже среднего, и наоборот. Такое часто встречается после избыточного взятия разностей гладкого ряда, в колебательных или возвращающихся к среднему процессах, а также когда последовательные корректировки намеренно компенсируют друг друга. Сильно отрицательная автокорреляция остатков может означать, что модель от периода к периоду слишком сильно исправляет предыдущую ошибку. Значения около \(-1\) на лаге 1 в реальных данных редки и могут говорить о том, что ряд построен искусственно.

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

Автокорреляция предполагает равноотстоящие наблюдения в строгом хронологическом порядке, поэтому пропуски меняют смысл лага. Варианты: интерполировать или восстановить небольшие пропуски; свести нерегулярные данные к регулярным интервалам (например, дневным средним); а если есть отметки времени — использовать методы для нерегулярных рядов. Простое удаление строк с пропусками укорачивает видимую лаговую структуру и может смещать результаты. Также вводите значения, начиная с самых старых: при вводе в обратном порядке знаки не изменятся, но это может иметь значение для асимметричных видов анализа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *