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

Опубликовано: 30 Ноября, 2021

Что такое корреляционный тест?
Сила связи между двумя переменными известна как тест корреляции. Например, если нас интересует, существует ли связь между ростом отцов и сыновей, для ответа на этот вопрос можно рассчитать коэффициент корреляции.

Чтобы узнать больше о корреляции, обратитесь сюда.

Методы корреляционного анализа:
В основном есть два типа корреляции:

  • Параметрическая корреляция - корреляция Пирсона (r): измеряет линейную зависимость между двумя переменными (x и y), известную как тест параметрической корреляции, поскольку она зависит от распределения данных.
  • Непараметрическая корреляция - Кендалл (тау) и Спирмен (ро): это коэффициенты корреляции на основе ранга, известные как непараметрическая корреляция.

Формула коэффициента корреляции рангов Кендалла:

где,

  • Concordant Pair: пара наблюдений (x1, y1) и (x2, y2), которая соответствует свойству
    • x1> x2 и y1> y2 или
    • x1 <x2 и y1 <y2
  • Дискордантная пара: пара наблюдений (x1, y1) и (x2, y2), которая соответствует свойству
    • x1> x2 и y1 <y2 или
    • x1 <x2 и y1> y2
  • n: общее количество образцов

Примечание . Пара, для которой x1 = x2 и y1 = y2 , не классифицируются как согласованные или несогласованные и игнорируются.

Пример. Давайте рассмотрим рейтинг двух экспертов по продуктам питания в таблице ниже.

Предметы Эксперт 1 Эксперт 2
1 1 1
2 2 3
3 3 6
4 4 2
5 5 7
6 6 4
7 7 5

В таблице указано, что для пункта 1 эксперт-1 дает ранг-1, тогда как эксперт-2 дает также ранг-1. Аналогично для пункта 2 эксперт-1 дает рейтинг 2, тогда как эксперт-2 дает рейтинг 3 и так далее.

Шаг 1:
Сначала по формуле нужно найти количество согласованных пар и количество дискордантных пар. Итак, взгляните на строки item-1 и item-2. Пусть для эксперта-1 x1 = 1 и x2 = 2 . Аналогично для эксперта-2 y1 = 1 и y2 = 3 . Таким образом, выполняется условие x1 <x2 и y1 <y2, и мы можем сказать, что строки item-1 и item-2 являются согласованными парами.

Точно так же посмотрите на строки item-2 и item-4. Пусть для эксперта-1 x1 = 2 и x2 = 4 . Аналогично для эксперта-2 y1 = 3 и y2 = 2 . Таким образом, выполняется условие x1 <x2 и y1> y2, и мы можем сказать, что строки элементов 2 и 4 являются дискордантными парами.

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

1
2 C
3 C C
4 C D D
5 C C C C
6 C C C D D
7 C C C C D D
1 2 3 4 5 6 7

Шаг 2:
Итак, из приведенной выше таблицы мы обнаружили, что,
Количество согласных пар: 15
Количество дискордантных пар: 6
Общее количество образцов / единиц: 7

Следовательно, применяя формулу коэффициента ранговой корреляции Кендалла

тау = (15 - 6) / 21 = 0,42857

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

kendalltau (): функции Python для вычисления коэффициента корреляции рангов Кендалла в Python

Syntax:
kendalltau(x, y)

  • x, y: Numeric lists with the same length

Код: программа Python для иллюстрации корреляции рангов Кендалла

Python

# Import required libraries
from scipy.stats import kendalltau
# Taking values from the above example in Lists
X = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
Y = [ 1 , 3 , 6 , 2 , 7 , 4 , 5 ]
# Calculating Kendall Rank correlation
corr, _ = kendalltau(X, Y)
print ( 'Kendall Rank correlation: %.5f' % corr)
# This code is contributed by Amiya Rout

Выход:

 Корреляция рангов Кендалла: 0,42857

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.