Калькулятор автокорреляции
Вычислите выборочные коэффициенты автокорреляции r_k для любого временного ряда при одном или нескольких лагах. Вставьте упорядоченные наблюдения, выберите лаги и оценку — и получите r_k вместе с полосой значимости для белого шума.
Проверьте, коррелирует ли ряд со своим собственным прошлым
Формула автокорреляции
Где:
- \(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: ряд инерционен — за высокими значениями идут высокие, — а автокорреляция плавно убывает, что типично для ряда с трендом.
Как пользоваться калькулятором
- Введите наблюдения в поле «Значения временного ряда (по порядку)», начиная с самых старых. Разделяйте числа пробелами, точками с запятой или переводами строки; запятая как десятичный разделитель допустима. Нужно минимум 3 значения.
- Укажите лаги в поле «Лаг(и) для расчёта» — один лаг (например, 1) или несколько через пробел или точку с запятой (например, 1; 2; 3; 4). Каждый лаг должен быть целым числом от 1 до \(n-1\).
- Выберите Оценку: «Стандартная АКФ (деление на n)» — то, что статистические программы строят на графиках АКФ; «Несмещённая (деление на n − k)» устраняет занижение коэффициентов на больших лагах в малых выборках.
- Изучите таблицу результатов: число перекрывающихся пар, использованных на каждом лаге, коэффициент \(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 в реальных данных редки и могут говорить о том, что ряд построен искусственно.
Что делать, если в ряду есть пропуски или неравномерные интервалы?
Автокорреляция предполагает равноотстоящие наблюдения в строгом хронологическом порядке, поэтому пропуски меняют смысл лага. Варианты: интерполировать или восстановить небольшие пропуски; свести нерегулярные данные к регулярным интервалам (например, дневным средним); а если есть отметки времени — использовать методы для нерегулярных рядов. Простое удаление строк с пропусками укорачивает видимую лаговую структуру и может смещать результаты. Также вводите значения, начиная с самых старых: при вводе в обратном порядке знаки не изменятся, но это может иметь значение для асимметричных видов анализа.