Между переменными в вашем наборе данных могут быть сложные и неизвестные отношения.

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

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

Прочитав эту статью, вы узнаете:

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

Эта статья разделена на 5 частей; они есть:

  1. Что такое корреляция?
  2. Тестовый набор данных
  3. Ковариация
  4. Корреляция Пирсона
  5. Корреляция Спирмена

код → исходный код

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

Переменные в наборе данных могут быть связаны по многим причинам.

Например:

  • Одна переменная может быть причиной или зависеть от значений другой переменной.
  • Одна переменная может быть легко связана с другой переменной.
  • Две переменные могут зависеть от третьей неизвестной переменной.

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

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

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

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

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

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

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

Тестовый набор данных

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

Мы создадим 1000 выборок двух переменных с сильной положительной корреляцией. Первая переменная будет представлять собой случайные числа, взятые из распределения Гаусса со средним значением 100 и стандартным отклонением 20. Вторая переменная будет оцениваться на основе первой переменной с добавлением гауссовского шума со средним значением 50 и стандартным отклонением 10.

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

код →исходный код

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

Ковариация

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

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

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

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

Функцию cov() NumPy можно использовать для вычисления ковариационной матрицы между двумя или более переменными.

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

Мы можем вычислить ковариационную матрицу для двух переменных в нашей тестовой задаче.

код → исходный код

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

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

Корреляция Пирсона

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

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

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

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

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

Функцию pearsonr() SciPy можно использовать для вычисления коэффициента корреляции Пирсона между двумя выборками данных одинаковой длины.

Мы можем рассчитать корреляцию между двумя переменными в нашей тестовой задаче.

Полный пример в коде →исходный код

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

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

Корреляция Спирмена

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

Кроме того, две рассматриваемые переменные могут иметь негауссово распределение.

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

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

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

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

Если вы не уверены в распределении и возможных отношениях между двумя переменными, коэффициент корреляции Спирмена является хорошим инструментом для использования.

Функцию SciPy spearmanr() можно использовать для вычисления коэффициента корреляции Спирмена между двумя выборками данных одинаковой длины.

Мы можем рассчитать корреляцию между двумя переменными в нашей тестовой задаче.

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

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