Что такое корреляция? Как мы можем вычислить корреляцию между непрерывными переменными? А в чем разница с ковариацией?

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

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

Кажется, это большое дело, а? Ну, возможно. Реальность при определенных обстоятельствах, которые оказываются совсем не ограничивающими, гораздо проще, чем можно было ожидать. Начнем с двух случайных величин, старых добрых «веса» и «роста» 6 человек:

Давайте визуализируем эти точки:

Прежде чем мы начнем, давайте сделаем заявление. Эти переменные являются числовыми, то есть переменными, которые могут принимать любое значение в числовом наборе или в интервале этого набора. Они не категориальные переменные (переменные, возможные значения которых находятся в предопределенном наборе, например, «цвет волос», который может иметь значения только в наборе [«коричневый», «блондин»). », «черный» и т. д.]). Для числовых переменных, подобных тем, которые мы представили ранее, наиболее распространенным способом расчета коэффициента корреляции является использование коэффициента Пирсона. Формула:

Как видим, корреляция Пирсона есть не что иное, как дробь с ковариацией в числителе и произведением стандартных отклонений переменных в знаменателе.

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

  • Вычислите среднее значение переменных
  • Вычислите переменные std. отклонение
    - вычислить квадрат разницы между каждой выборкой и средним значением переменной
    - просуммировать все эти квадраты
    - разделить на количество выборок
    - извлечь квадратный корень этой фракции
  • Вычислите ковариацию между X и Y
    . Для каждой записи в нашем наборе данных вычислите разницу между X-компонентом и средним значением X и умножьте ее на разницу между Y-компонентом и средним значением Y
    - Суммируйте эти продукты
    - Разделите на количество образцов

Легче сделать, чем сказать. Давайте двигаться дальше:

Вычислите средние значения для «Веса» и «Роста»:

μ_w = 76KG
μ_h = 180.33cm

Вычислите станд. отклонение для веса:

Мы получаем этот результат:

σ_w = 13.5523

То же самое для высоты стандарт. отклонение:

σ_h = 10.8115

Чтобы вычислить ковариацию, мы должны рассмотреть каждую точку (то есть отдельные строки/пары исходной таблицы: [100, 194], [80, 182], [75, 184], …), вычислить разницу между каждым компонентом и его среднее значение, затем умножьте их и просуммируйте все эти произведения. Наконец, делим на 6:

Мы получаем ковариацию между весом и ростом:

cov(вес, рост) = 163 кг-см

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

Напуганы всеми этими цифрами?

Что ж, если вы увлекаетесь Python, вы можете использовать NumPy, чтобы получить тот же результат с помощью всего лишь этой группы строк кода:

import numpy 
weight = [100, 80, 75, 56, 66, 79]
height = [194, 182, 184, 162, 171, 189]
pearson_corr = numpy.corrcoef(weight, height)[0, 1]
print(pearson_corr) # we'd get exactly 0.92932799

Теперь сделайте перерыв и обратите внимание на две вещи. Во-первых, корреляция — это безразмерное число. Пара кг-см в числителе упрощена с единицами измерения стандартных отклонений в знаменателе. Одна только эта функция делает корреляцию очень интересной и гибкой в ​​использовании. Но настоящее изменение правил игры заключается в том, что корреляция имеет четко определенный интервал: это всегда число от -1 до 1. Его смысл аналогичен ковариации:

  • когда корреляция между X и Y находится в диапазоне от -1 до 0, X и Y находятся в обратной зависимости: это означает, что когда X увеличивается, Y уменьшается
  • когда корреляция между X и Y равна 0, X и Y не имеют линейных отношений
  • когда корреляция между X и Y составляет от 0 до 1, X и Y напрямую связаны: когда X увеличивается, увеличивается и Y.

При этом чем ближе корреляция к -1, тем более «очевидной» будет обратная корреляция. Конечно, чем ближе корреляция к 1, тем более очевидной будет прямая корреляция. В нашем случае 0,929 очень близко к 1, что указывает на очень высокую прямую корреляцию между весом и ростом: мы, по сути, говорим, что чем выше человек, тем тяжелее он/она есть. В конце концов, это имеет смысл. Мы могли бы заметить такое же соотношение между весом и ростом, просто взглянув на график:

Давайте нарисуем другие 2 случая корреляции между переменными. Вот корреляция, очень близкая к -1:

Вот корреляция, очень близкая к 0:

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

Прежде чем закончить статью, давайте сделаем краткий обзор аналогий и различий ковариации и корреляции.

Я надеюсь, что эта статья была полезна для вас, читатели. Пожалуйста!