IT Blog

Интересные факты из аналитики, разработки, автоматизации и AI

← Все статьи

Почему корреляция не означает причинность

Два показателя могут двигаться вместе и иметь почти идеальную статистическую связь. Но это ещё не означает, что один показатель вызывает другой. Разбираемся, как возникают ложные выводы и как проверять причинность.

Представьте: аналитик заметил, что в месяцы с высокими продажами мороженого растёт и число людей, которые посещают пляжи. Корреляция сильная.

Можно ли сделать вывод, что мороженое заставляет людей идти на пляж? Конечно, нет. Скорее всего, на оба показателя влияет третий фактор — тёплая солнечная погода.

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

Если два события происходят одновременно, это ещё не значит, что одно событие вызвало другое.

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

Корреляция — это статистическая мера связи между двумя числовыми величинами. Она показывает, как показатели изменяются относительно друг друга.

Чаще всего используют коэффициент корреляции Пирсона. Его значение находится в диапазоне от -1 до 1.

Значение Что это означает
1 Идеальная положительная связь: один показатель растёт — второй тоже растёт
0 Линейной связи практически нет
-1 Идеальная отрицательная связь: один показатель растёт — второй падает

Например, количество часов подготовки к экзамену и итоговый балл часто имеют положительную корреляцию. А цена товара и количество покупок — отрицательную: при повышении цены спрос обычно снижается.

Но даже сильная корреляция не отвечает на вопрос: почему именно показатели связаны?

Три причины, почему показатели могут коррелировать

1. Один показатель действительно влияет на другой

Это самый очевидный случай. Например, увеличение рекламного бюджета может привести к росту числа переходов на сайт. Рост температуры воздуха может увеличить продажи холодных напитков.

Здесь есть причинная цепочка:

Причинная связь
Рекламный бюджет → Показы рекламы → Переходы на сайт

Но в реальных данных даже такая очевидная связь требует проверки. Возможно, рекламный бюджет увеличили именно потому, что ожидался сезонный рост спроса.

2. На оба показателя влияет третий фактор

Это наиболее частая причина ошибочных выводов. Два показателя изменяются одновременно не потому, что влияют друг на друга, а потому что оба зависят от внешнего фактора.

Например, летом обычно растут:

  • продажи мороженого;
  • посещаемость пляжей;
  • продажи солнцезащитных средств;
  • потребление прохладительных напитков.

У этих метрик может быть высокая взаимная корреляция. Но первопричина — не мороженое и не пляж, а сезонность и температура.

Скрытый фактор
Температура воздуха → Продажи мороженого
Температура воздуха → Посещаемость пляжей

3. Связь возникла случайно

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

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

Чем больше гипотез проверяет аналитик, тем выше вероятность случайной «находки». Поэтому результаты важно подтверждать дополнительными данными, экспериментами или исследованиями.

Классический пример: мороженое и утопления

В жаркие месяцы часто одновременно увеличиваются продажи мороженого и число несчастных случаев на воде. Между этими величинами можно обнаружить положительную корреляцию.

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

Продажа мороженого приводит к несчастным случаям на воде.

Более вероятное объяснение: летом больше людей покупают мороженое и больше людей проводят время у воды. Общий фактор — высокая температура и сезон отпусков.

Это не означает, что корреляция бесполезна. Она помогла заметить связь, которую стоит изучить. Ошибка начинается в момент, когда наблюдение превращают в уверенный вывод о причине.

Пример на Python

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

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.DataFrame({
    'month': [
        'Янв', 'Фев', 'Мар', 'Апр',
        'Май', 'Июн', 'Июл', 'Авг',
        'Сен', 'Окт', 'Ноя', 'Дек'
    ],
    'temperature': [-5, -2, 4, 11, 17, 22, 26, 24, 17, 9, 3, -2],
    'ice_cream_sales': [120, 130, 180, 280, 430, 680, 920, 870, 490, 260, 160, 125],
    'beach_visitors': [20, 25, 40, 110, 340, 760, 1250, 1180, 410, 130, 45, 20]
})

data
month temperature ice_cream_sales beach_visitors
0 Янв -5 120 20
1 Фев -2 130 25
2 Мар 4 180 40
3 Апр 11 280 110
4 Май 17 430 340
5 Июн 22 680 760
6 Июл 26 920 1250
7 Авг 24 870 1180
8 Сен 17 490 410
9 Окт 9 260 130
10 Ноя 3 160 45
11 Дек -2 125 20

Посчитаем корреляцию между продажами мороженого и количеством посетителей пляжа:

correlation = data[
    ['ice_cream_sales', 'beach_visitors']
].corr()

correlation
ice_cream_sales beach_visitors
ice_cream_sales 1.000000 0.987935
beach_visitors 0.987935 1.000000

Коэффициент 0.985 — очень сильная положительная корреляция. Но она не доказывает, что мороженое приводит людей на пляж или наоборот.

Проверим, как оба показателя связаны с температурой:

correlations = data[
    ['temperature', 'ice_cream_sales', 'beach_visitors']
].corr()

correlations
temperature ice_cream_sales beach_visitors
temperature 1.000000 0.942339 0.883225
ice_cream_sales 0.942339 1.000000 0.987935
beach_visitors 0.883225 0.987935 1.000000

Температура сильно связана с обеими метриками. Именно она выглядит более правдоподобным объяснением их совместного роста.

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

Диаграмма рассеяния помогает увидеть связь между двумя величинами. Каждая точка на графике — одно наблюдение, например, один месяц.

plt.figure(figsize=(9, 5))

sns.set_theme(style='whitegrid')

sns.regplot(
    data=data,
    x='ice_cream_sales',
    y='beach_visitors',
    scatter_kws={'s': 70, 'color': '#4C78A8'},
    line_kws={'color': '#E45756'}
)

plt.title('Продажи мороженого и посещаемость пляжа')
plt.xlabel('Продажи мороженого')
plt.ylabel('Посетители пляжа')

plt.tight_layout()
plt.show()
Диаграмма рассеяния с линией регрессии: связь между продажами мороженого и количеством посетителей пляжа

Такой график показывает наличие связи, но не раскрывает её механизм. Чтобы понять причину, нужно учитывать контекст, сезонность, сегменты и возможные внешние факторы.

Почему это опасно в бизнес-аналитике

Ошибки с причинностью встречаются не только в учебных примерах. Они могут привести к дорогим и неверным решениям.

Пример: рост рекламных расходов и выручки

Компания увеличила расходы на рекламу в ноябре. В том же месяце выросла выручка. Кажется логичным объявить рекламную кампанию успешной.

Но ноябрь может включать сезон распродаж, предпраздничный спрос, изменение ассортимента или запуск промокодов. Выручка могла бы вырасти и без рекламы.

Чтобы оценить реальный эффект, полезно сравнить:

  • регионы, в которых реклама запускалась, и контрольные регионы;
  • аудиторию, видевшую рекламу, и похожую аудиторию без показа;
  • результаты до и после кампании с учётом сезонности;
  • изменение метрик в рамках A/B-теста.

Пример: новая функция и удержание пользователей

После запуска новой функции retention вырос с 30% до 35%. Это хорошая новость, но не окончательное доказательство пользы функции.

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

Сезонность — частая ловушка

Особенно осторожно нужно работать с данными, которые меняются во времени. Временные ряды часто имеют общий тренд или сезонность.

Например, одновременно могут расти:

  • количество зарегистрированных пользователей;
  • объём базы данных;
  • число обращений в поддержку;
  • расходы на инфраструктуру.

Между этими метриками будет корреляция, потому что продукт растёт. Но это не значит, что увеличение базы данных вызывает обращения в поддержку или что рост инфраструктурных расходов приводит к новым регистрациям.

Для временных данных полезно сравнивать не только абсолютные значения, но и:

  • изменения относительно прошлого периода;
  • год к году, если есть сезонность;
  • значения внутри одинаковых сегментов;
  • периоды до и после изменения;
  • контрольные группы.

Как приблизиться к выводу о причинности

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

1. Использовать эксперимент

Самый надёжный способ — провести контролируемый эксперимент, например A/B-тест. Пользователей случайно делят на группы: одна видит изменение, другая — нет.

Если группы сопоставимы, а различается только тестируемый фактор, изменение результата можно с большей уверенностью связать именно с этим фактором.

2. Искать и учитывать скрытые факторы

Стоит спросить: какие переменные могут влиять сразу на оба показателя? Для продаж это могут быть сезон, цена, скидки, рекламные активности, ассортимент, регион, канал привлечения и тип клиента.

3. Проверять логику причинной цепочки

Причинность должна быть объяснима. Если гипотеза звучит как «показатель A влияет на B», важно понять механизм: как именно это происходит, в какой последовательности и почему.

4. Смотреть на данные по сегментам

Общая корреляция может исчезнуть или измениться, если разделить данные по регионам, типам клиентов, устройствам, каналам или периодам. Это часто указывает на скрытый фактор.

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

Если вы нашли сильную корреляцию, не спешите принимать решение. Проверьте результат по следующему списку:

  1. Не перепутаны ли причина и следствие?
  2. Есть ли третий фактор, который влияет на оба показателя?
  3. Не объясняется ли связь сезонностью или общим трендом?
  4. Достаточно ли наблюдений для вывода?
  5. Проверяли ли вы много гипотез одновременно?
  6. Сохраняется ли связь в разных сегментах?
  7. Можно ли провести A/B-тест или использовать контрольную группу?
  8. Есть ли понятный бизнес-механизм, объясняющий предполагаемую причинность?

Вывод

Корреляция — полезный инструмент аналитика. Она помогает замечать связи, находить аномалии и формулировать гипотезы. Но сама по себе она не отвечает на вопрос, что стало причиной изменения метрики.

Сильная связь между показателями может быть результатом прямого влияния, общего скрытого фактора, сезонности или простой случайности.

Корреляция — это повод задать вопрос «почему?», а не повод сразу отвечать «потому что».
← Все статьи