Как интерпретировать корреляционные метрики

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


1) Что означает каждая колонка отчёта

  • series_1, series_2 — ID показателей сравниваемых рядов. ID series_1 всегда меньше ID series_2. Это нужно учитывать при анализе значений
  • pearson, pearson_p — коэффициент корреляции Пирсона и его p-value. Измеряет линейную связь.
  • spearman, spearman_p — ранговая корреляция Спирмена и p-value. Измеряет монотонную (не обязательно линейную) связь. Устойчивее к выбросам и нелинейности.
  • kendall, kendall_p — τ Кендалла и p-value. Ещё более устойчивая метрика, хорошо работает на малых выборках и при множестве одинаковых значений.
  • best_lag — лаг (целое число шагов времени - нашем случае недель), при котором |корреляция| максимальна (считалась Пирсоном между series_1 и series_2, сдвинутым на best_lag):

    • best_lag > 0series_1 опережает series_2 на best_lag шагов (реакция series_2 позже).
    • best_lag < 0series_2 опережает series_1.
    • best_lag = 0 → максимум без сдвига.
  • best_lag_corr, best_lag_p, best_lag_n — значение корреляции Пирсона в лучшем лаге, его p-value и объём пересечения наблюдений после сдвига.
  • n_common — число совместных наблюдений без сдвига (полезно для оценки «сырых» размеров выборки).
  • primary_metric, primary_score — «самый важный» метрик среди значимых, выбранный по приоритету:

Корреляция признается статистически значимой связь по хотя бы одному метрику (|corr| ≥ min_abs_corr и p < alpha).

  1. best_lag_corr → 2) pearson → 3) spearman → 4) kendall.

Порог значимости и «заметной» силы связи настраиваются параметрами на уровне Системы: alpha (по умолчанию 0.05) и min_abs_corr (по умолчанию 0.70).


2) Как читать величины коэффициентов

Знак:

  • + — ряды растут/падают преимущественно вместе.
  • — один растёт, другой падает.

Величина (правило большого пальца):

  • |corr| ≥ 0.70 — заметная/сильная
  • в противном случае — умеренная или слабая

⚠️ Для временных рядов линейные коэффициенты часто завышаются из-за трендов и автокорреляции. Всегда проверяйте графики и лаги.

p-value:

  • Вероятность получить такую или более экстремальную связь случайно при нулевой гипотезе.
  • p < alpha → статистически значимо.
  • p-value не говорит о причинно-следственных связях и не измеряет силу эффекта.

3) Интерпретация лаговой корреляции

  • Если best_lag > 0, максимальная корреляция достигается при сравнении series_1(t) с series_2(t + best_lag). Трактовка: series_1 «ведёт», series_2 «следует» спустя best_lag шагов.
  • Если best_lag < 0, лидирует series_2.
  • Оценивайте trio: best_lag_corr (величина), best_lag_p (значимость) и best_lag_n (достаточно ли наблюдений после сдвига).

Практическая польза:

  • Ограничения: лаговая корреляция ≠ причинность; лаг должен быть осмысленным в домене (недели/месяцы, логистические задержки, сезонные циклы).

4) Как выбирается «главная» метрика

  • Корреляция считается найденной, если хотя бы одна из корреляционных метрик соответствует условиям: |corr| ≥ min_abs_corr и p < alpha.
  • primary_metric выбирается по приоритету:

    1. best_lag_corr — важнее, потому что улавливает зависимости со сдвигом; часто полезнее для прогнозирования.
    2. pearson — линейная связь.
    3. spearman — монотонная связь (устойчивее к выбросам).
    4. kendall — устойчивая альтернатива на малых выборках.
  • primary_score — значение выбранной метрики (с учётом знака).

5) Мини-пример интерпретации

Строка отчёта:

series_1 = ID:101 ('Продажи A')
series_2 = ID:202 ('Поиск A')
pearson = 0.62 (p=0.001)
spearman = 0.58 (p=0.002)
kendall  = 0.42 (p=0.003)
best_lag = +3
best_lag_corr = 0.71 (p<0.001), best_lag_n=94
n_common = 100
primary_metric  = 'best_lag_corr'
primary_score   = 0.71

Вывод: Корреляция найдена. Запросы Поиск A достигают наибольшей связи с продажами Продажи A через 3 шага (3 недели). Связь сильная и значимая. Для прогноза Продажи A имеет смысл рассматривать признак Поиск A с лагом 3.


6) Типичные ловушки и как их обходить

  1. Общий тренд → ложнозавышенные корреляции. Что делать: смотреть графики, попробовать разности/деградацию тренда, проверять лаговую корреляцию.
  2. Малый n_common или best_lag_n → нестабильные выводы. Рекомендация: желательно ≥ 30–50 точек.
  3. Неинтерпретируемые лаги — сдвиг противоречит бизнес-логике. Что делать: отвергайте такие гипотезы, даже если статистически «красиво».

7) Практический чек-лист

  1. Проверьте лаги: best_lag должен быть реалистичным для предметной области.
  2. Посмотрите графики (ряды + scatter) и, при необходимости, CCF/cross-correlation plot.
  3. Проверьте стабильность на подвыборках (rolling windows) и out-of-sample.
  4. Учтите тренд/сезонность — возможно, нужна дифференциация/детрендинг.
  5. Feature engineering: добавьте ведущие ряды с найденными лагами.

8) Когда какая метрика полезнее

  • best_lag_corr — когда возможны задержки реакции. Для прогноза и лидирующих индикаторов.
  • Пирсон — когда связь предположительно линейная и распределения примерно симметричны.
  • Спирмен — при монотонной, но нелинейной связи. Устойчив к выбросам.
  • Кендалл — когда наблюдений мало или много повторов/«ступенек».

9) Частые вопросы

Q: Метрики не согласуются: Пирсон высок, Спирмен низкий. A: Вероятно, связь нелинейная/негладкая. Смотрите scatter и ориентируйтесь на Спирмен/Кендалл.

Q: best_lag не ноль, но p-value незначим. A: Сдвиг даёт максимум, но слабый/нестабильный — не используйте этот лаг.

Q: Высокая корреляция, но нет причинности? A: Верно. Корреляция ≠ причинность. Нужны доменные аргументы, эксперименты или причинные модели.