Корреляционный анализ данных

15 января 2026
0 комментариев

Корреляционный анализ — мощный инструмент статистики и анализа данных, применяемый для выявления степени связи между переменными. Описаны принципы его работы, разновидности коэффициентов корреляции (Пирсона, Спирмена, Кендалла), особенности интерпретации результатов, а также распространенные ошибки. Уделено внимание практическому использованию метода в науке, бизнесе и машинном обучении.

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

Сам термин «корреляция» происходит от латинского «correlatio» — соотношение. В широком смысле это понятие указывает на любой тип связи, которая может быть или не быть причинно-следственной. Однако в анализе данных и статистике под корреляцией обычно понимают степень связи между двумя случайными переменными, которые выступают в качестве признаков, описывающих объекты или процессы предметной области. Типичными примерами могут быть связь между ценой товара и объемом его продаж (чем ниже цена, тем больше покупателей), процентной ставкой и числом заемщиков.

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

При этом корреляция показывает только степень зависимости между величинами, но не отражает причинно-следственных связей между описываемыми ими явлениями, что иногда приводит к бессмысленным и даже ложным выводам. Например, может наблюдаться сильная корреляция между ущербом от пожара и числом пожарных, задействованных при тушении. Здравый смысл подсказывает, что причина в том, что высокий ущерб получается от масштабных пожаров, на борьбу с которыми требуется много ресурсов. Хотя можно сделать и вывод, что минимальный ущерб от пожара будет, если его вообще не тушить.

Таким образом, наличие корреляции само по себе не является подтверждением наличия причинно-следственной связи, т.е. она не означает зависимость. И чтобы понять, почему возникла корреляция, необходимо дополнительное исследование с целью определить, существует ли связь между величинами в реальности или это просто случайное совпадение. Можно утверждать, что если корреляция все же наблюдается, то вероятность того, что коррелирующие величины связаны, выше, чем при ее отсутствии.

Возможны три случая, когда корреляция наблюдается:

  • между коррелирующими величинами есть очевидная связь (например, между ценой и уровнем продаж);
  • связь между величинами отсутствует, т.е. имеет место ложная корреляция (например, между урожайностью картофеля и рождаемостью);
  • связь между коррелирующими величинами неявная и может быть связана с некоторым другим признаком. Так, связь между потреблением прохладительных напитков и лесными пожарами может быть объяснена с помощью температуры воздуха (непрямая зависимость).

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

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

Области применения

В настоящее время корреляционный анализ является важнейшим инструментом исследования данных во многих областях, основными из которых являются:

  1. Статистические исследования. Применяют корреляцию в расчетах, необходимых для фундаментальных и прикладных научно-исследовательских работ, в проектировании, обработке результатов экспериментов.
  2. Анализ данных и машинное обучение. Определение уровня значимости входных переменных модели с целью их отбора. При этом входная переменная, сильно коррелирующая с выходной, считается более значимой. Обнаружение корреляции между входными переменными позволяет снижать размерность пространства признаков, поскольку коррелирующие входные переменные несут одну и ту же информацию, и одну из них можно исключить из модели без существенной потери ее точности. Кроме того, корреляция входных переменных в регрессионных моделях приводит к мультиколлинеарности.
  3. Бизнес. Обнаружение корреляций между бизнес-показателями позволяет повышать эффективность управления бизнес-процессами и совершенствовать маркетинговые стратегии.

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

Измерение корреляции

Корреляция может быть:

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

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

Виды корреляций

Виды корреляций

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

Величиной, численно характеризующей корреляцию, является коэффициент корреляции, который принимает значения от -1 до 1. Значение 1 соответствует идеальной положительной корреляции, когда увеличение одного признака всегда приводит к увеличению другого, а -1 указывает на идеальную отрицательную корреляцию, когда возрастание одной переменной всегда приводит к уменьшению другой. Нулевое значение говорит о полном отсутствии корреляции, когда связь между величинами отсутствует.

На практике используют следующую градацию значений коэффициента корреляции по степени связи между величинами:

  • от 0 до 0.2 — связь отсутствует или очень слабая;
  • от 0.2 до 0.4 — слабая;
  • от 0.4 до 0.6 — умеренная;
  • от 0.6 до 0.8 — сильная;
  • от 0.8 до 1 — очень сильная.

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

Коэффициент корреляции Пирсона. Является наиболее часто используемой мерой и служит для измерения связи между вещественными величинами. Он обозначается латинской буквой r и вычисляется по формуле:

r=\frac{\sum\limits_{i=1}^{n}(x_{i}-\bar{x})(y_{i}-\bar{y})}{\sqrt{\sum\limits_{i=1}^{n}(x_{i}-\bar{x})\sum\limits_{i=1}^{n}(y_{i}-\bar{y})}}, (1)

где n — число наблюдений выборки x и y — переменные, между которыми измеряется корреляция, \bar{x} и \bar{y} их средние значения.

Пример вычисления коэффициента корреляции Пирсона.

МесяцЗатраты на рекламу, тыс. рубПродажи, тыс. руб
Январь36659.30
Февраль24780.20
Март18429.50
Апрель28317.70
Май21564.80
Июнь17515.40
Июль15681.90
Август26945.70
Сентябрь341230.90
Октябрь32985.20
Ноябрь27675.90
Декабрь25879.50

Обозначим затраты на рекламу x, а сумму продаж как y. Сначала рассчитаем средние:

\mu_{x}=\frac{1}{n}\sum\limits_{i=1}^{n}x_{i}\approx 25.3.

\mu_{y}=\frac{1}{n}\sum\limits_{i=1}^{n}y_{i}\approx 722.2.

Сумму произведений разностей в числителе рассчитаем с помощью таблицы.

Месяцx-\bar{x}y-\bar{y}(x-\bar{x})\cdot (y-\bar{y})
Январь36.00-25.30=10.70659.30-722.20=-62.90-673.03
Февраль24.00-25.30=-1.30780.20-722.20=58.00-75.40
Март18-25.30=-7.30429.5-722.20=-292.702 136.71
Апрель28-25.3=2.70317.70-722.20=-404.50-1 092.15
Май21-25.30=-4.30564.80-722.20=-157.40676.82
Июнь17-25.30=-8.30515.40-722.20=-206.801 716.44
Июль15-25.30=-10.30681.90-722.20=-40.30415.09
Август26-25.30=0.70945.70-722.20=223.50156.45
Сентябрь34-25.30=8.701230.90-722.20=508.704 425.69
Октябрь32-25.30=6.70985.20-722.20=263.001 762.10
Ноябрь27-25.30=1.70675.90-722.20=-46.30-78.71
Декабрь25-25.30=-0.30879.50-722.20=157.30-47.19
Сумма  9 322.82

Таким образом, числитель в формуле (1) составит 9 322.82

Месяц(x-\bar{x})^{2}(y-\bar{y})^{2}
Январь114.493 956.41
Февраль1.693 364.00
Март53.2985 673.29
Апрель7.29163 620.25
Май18.4924 774.76
Июнь68.8942 766.24
Июль106.091 624.09
Август0.4949 952.25
Сентябрь75.69258 775.69
Октябрь44.8969 169.00
Ноябрь2.892 143.69
Декабрь0.0924 743.69
Сумма494.28730 563.00

Подставив итоговые значения из таблиц в формулу (1), получим

r_{xy}\approx\frac{9 322.82}{\sqrt{494.28\cdot 730 563.00}}\approx\frac{9 322.82}{19 002.70}\approx0.49.

В нашем примере имеет место умеренная положительная корреляция между затратами на рекламу и уровнем продаж.

Коэффициенты ранговой корреляции

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

Шкала рангов упорядочивает наблюдения по степени выраженности значений признаков в соответствии с отношением «больше-меньше», в которой числа (ранги) определяют только порядок следования значений. При этом операции производятся именно над числовыми рангами, а не над значениями признаков. Каждый сталкивается со шкалой рангов при поступлении в школу, так как используемая там 5-балльная система оценки именно таковой и является.

Она позволяет оценить уровень знаний учащегося как: 1 — очень плохой, 2 — плохой, 3 — удовлетворительный, 4 — хороший и 5 — отличный. Таким образом, оперируя рангами, можно применять численные методы обработки к признакам, которые изначально представлены категориями. Аналогично можно построить и методы определения силы связи между качественными признаками.

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

Коэффициент ранговой корреляции Спирмена (обозначается r_{s}или греческой буквой \rho основан на измерении силы связи между рангами, а не абсолютными значениями. Кроме возможности работы с нечисловыми признаками, он имеет ряд преимуществ по сравнению с коэффициентом корреляции Пирсона, а именно:

Интуитивно понятно, что коэффициент корреляции Спирмена тем выше, чем в большем числе наблюдений выборки значения двух признаков будут иметь один и тот же ранг. Если ранги совпадают во всех наблюдениях, то r_{s} = 1, а если ранги в обратном порядке, то r_{s} = -1.

Рассмотрим пример. Пусть предприятие организовывало работу выездной торговой точки в течение 8 недель. При этом она каждую неделю работала определенное количество часов X, получая соответствующую выручку Y. Результаты работы можно представить в виде таблицы.

Таблица 1.

НеделяВремя торговли, X час.Выручка, Y тыс. руб.
11242
29107
38100
41460
51578
61179
71090
81554

Даже простой визуальный анализ таблицы показывает, что выручка не пропорциональна времени работы: на 2-й неделе за 9 часов она составила 107 тыс. руб., а на 5-й за 15 часов — всего 78 тыс. руб. В связи с этим возникает вопрос: а стоит ли пытаться увеличить выручку за счет простого наращивания времени торговли? Или стоит поискать другие решения: правильно выбрать место и период дня? Именно в этом и может помочь коэффициент корреляции Спирмена, который покажет степень связи между продолжительностью торговли и выручкой.

Связь между временем торговли и выручкой

Вычисление начнем с присвоения рангов. Для этого сначала упорядочим по возрастанию значения x_{i} признака X и присвоим им ранги d_{xi}, как показано в таблице 2.

Таблица 2.

x_{i}d_{xi}
81
92
103
114
125
146
157
158

Аналогичную операцию проведем и для признака Y.

Таблица 3.

y_{i}d_{yi}
421
542
603
784
795
906
1007
1078

В таблице с рангами для X можно увидеть, что два одинаковых значения x_{5}=15 и x_{8}=15 имеют разные ранги 7 и 8. Это вызывает неоднозначность: почему не наоборот? В таких случаях вычисляют среднеарифметический ранг для всех наблюдений с одинаковыми значениями и подставляют на место исходных значений. В нашем случае оно будет равно (7+8)/2=7.5. Поскольку признак Y не имеет одинаковых значений, применять аналогичную корректировку для него не обязательно.

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

x_{i}d_{xi}y_{i}d_{yi}
125421
921078
811007
146603
157.5784
114795
103906
157.5542

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

\sum\limits_{i=1}^{n}d_{xi}=\sum\limits_{i=1}^{n}d_{yi}=\frac{(n+1)\cdot n}{2}=36.

Убедившись, что это так, перейдем непосредственно к вычислению коэффициента корреляции Спирмена на основе присвоенных рангов. Для этого можно использовать упрощенную формулу:

r_{s}=1-\frac{6\cdot \sum\limits_{i=1}^{n}(d_{xi}-d_{yi})^{2}}{n\cdot (n^{2}-1)}.

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

x_{i}d_{xi}y_{i}d_{yi}d_{i}=(d_{xi}-d_{yi})d_{i}^{2}
125421416
921078-636
811007-636
14660339
157.57843.512.25
114795-11
103906-39
157.55425.530.25
     \sum_{}^{}=149.5

Поскольку имеются дробные ранги, то формула дает лишь приближенный результат:

r_{s}\approx 1- \frac{6\cdot \sum\limits_{i=1}^{n}d_{i}^{2}}{n\cdot (n^{2}-1)}=\approx 1-\frac{6\cdot 149.5}{8\cdot (8^{2}-1)}\approx -0.78.

Как понять полученный результат? Поскольку ранговый коэффициент корреляции Спирмена эквивалентен коэффициенту корреляции Пирсона для рангов, то и интерпретации их значений аналогичны. Поэтому можно сказать, что имеет место сильная отрицательная корреляция между продолжительностью продаж и выручкой.

На первый взгляд результат обескураживает: получается, что чем меньше по времени идет торговля, тем больше выручка. Из этого можно сделать странный вывод: если свести время торговли до минимума, то выручка окажется максимальной. Однако здравый смысл подсказывает, что это не так. Действительно, ранее мы отметили, что коэффициент корреляции показывает только степень статистической зависимости и не объясняет причинно-следственных связей.

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

Коэффициент ранговой корреляции Кендалла (обозначается греческой буквой \tau основан на следующих соображениях: он равен 1, если ранги для обоих признаков, между которыми измеряется связь, следуют в одном и том же порядке, и -1 — если в противоположном. Когда он по модулю меньше 1, это значит, что имеются нарушения порядка следования рангов.

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

Вернемся к примеру, который мы использовали ранее для иллюстрации коэффициента ранговой корреляции Спирмена, где рассмотрели два признака: X и Y. Тогда выборку можно представить в виде множества пар (x_{1},y_{1})...(x_{n},y_{n}), где все значения x_{i} и y_{j} уникальны.

Любая пара наблюдений (x_{i},y_{i}) и (y_{j},y_{j}), где i\lt j, называются конкордантными или согласованными, если порядок сортировки (x_{i},x_{j}) и (y_{i},y_{j}) является согласованным, т.е. выполняется: x_{i}\gt x_{j} и y_{i}\gt y_{j} или x_{i}\lt x_{j} и y_{i}\lt y_{j}. В противном случае пары будут дисконкордантными или несогласованными.

Число дисконкордантных пар в выборке называется ранговым расстоянием Кендалла или τ-расстоянием.

Коэффициент ранговой корреляции Кендалла может быть рассчитан следующим образом:

\tau=\frac{C — D}{n}=1-\frac{2\cdot D}{ (n\cdot(n-1))/2},

где C — число конкордантных пар, D — число дисконкордантных пар, n — общее число пар.

Рассчитаем коэффициент ранговой корреляции Кендалла для ранее рассмотренного примера о связи выручки с продолжительностью торговли. Для этого нам понадобится таблица с установленными рангами для признаков. При этом ранги для первого признака упорядочиваются по возрастанию, а второго располагаются так, чтобы сохранилась связь с исходным расположением признаков. Для этого воспользуемся данными из таблиц 1, 2 и 3.

d_{xi}d_{yi}
17
28
36
45
51
63
7.54
7.52

Теперь дополним расчетную таблицу двумя столбцами: P и Q. Для каждого ранга d_{yi} из числа следующих за ним рангов подсчитывается количество больших него по величине (заносится в столбец P) и число рангов, меньших по значению (заносится в столбец Q).

d_{xi}d_{yi}PQ
1716
2806
3605
4504
5130
6311
7.5401
7.5200
  \sum_{}^{}=5\sum_{}^{}=23

Тогда для расчета можно использовать следующую формулу:

\tau=\frac{2\cdot (\sum_{}^{}P-\sum_{}^{}Q)}{n\cdot (n-1)}=\frac{2\cdot (5-23)}{8\cdot 7}\approx -0.64.

Как можно увидеть, коэффициент ранговой корреляции Кендалла \tau=-0.64, так же, как и Спирмена r_{s}=-0.78 для данного примера показывают значительную отрицательную корреляцию.

Значения коэффициентов корреляции Спирмена и Кендалла обычно ниже, чем Пирсона для тех же данных (если связь действительно линейная). Поэтому при интерпретации ранговых корреляций, как правило, используют более «либеральные» пороги для определения силы связи, чем для других ее типов.

Достаточно популярной является шкала Чеддока, предложенная в 1925 году:

Абсолютное значение коэффициентаСила связи
менее 0.3слабая
от 0.3 до 0.5умеренная
от 0.5 до 0.7значительная
от 0.7 до 0.9высокая
более 0.9очень высокая

И в заключение рассмотрим, в каких случаях предпочтительно использовать коэффициент ранговой корреляции Спирмена, а в каких — Кендалла.

Критерий выбораКоэффициент СпирменаКоэффициент Кендалла
Объем выборкиБольшойМалый
Наличие связных ранговПлохо работаетМенее чувствителен
Чувствительность к аномальным значениямБолее чувствителенМенее чувствителен
Вычислительная сложностьНижеВыше

Несмотря на то, что корреляционный анализ широко используется в статистических исследованиях и анализе данных, подходить к интерпретации его результатов следует с осторожностью. Эту ситуацию хорошо иллюстрирует известная фраза: correlation does not imply causation — «корреляция не подразумевает причинно-следственную связь».

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

Эта ошибка также известна по латинской фразе cum hoc ergo propter hoc — «вместе с этим, значит, из-за этого». Она отличается от другой ошибки — post hoc ergo propter hoc («после этого, значит, из-за этого»), при которой событие, следующее за другим, ошибочно считается его следствием.

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

При аккуратном и грамотном использовании корреляционный анализ является мощным инструментом исследования данных. Его результаты помогают принимать более обоснованные решения при оптимизации бизнес-процессов.

Дополнительные материалы:

Утечка данных в машинном обучении

Дрейф данных

Орешков Вячеслав
Рязанский государственный радиотехнический университет, Доцент кафедры САПР ВС
#машинное обучение

Смотрите также

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться