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

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

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

Задача:

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ковариация

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

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

Расчет выборочной ковариации осуществляется следующим образом:

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

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

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

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

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

Полный пример приведен ниже.

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

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

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

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

[[385.33297729 389.7545618 ]

[389.7545618 500.38006058]]

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

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

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

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

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

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

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

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

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

Полный пример приведен ниже.

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

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

Корреляция Пирсона: 0,888

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

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

Задача:

Вот результаты тестов 10 студентов по физике и истории:

Physics Scores  15  12  8   8   7   7   7   6   5   3
History Scores  10  25  17  11  13  17  20  13  9   15

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

(Используя только «математическую» библиотеку, ответ дан ниже)

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

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

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

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

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

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

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

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

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

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

Полный пример приведен ниже.

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

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

Корреляция Спирмана: 0,872

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

Ответ на задание:

Ссылка :