Python - коэффициент ранговой корреляции Кендалла
Что такое корреляционный тест?
Сила связи между двумя переменными известна как тест корреляции. Например, если нас интересует, существует ли связь между ростом отцов и сыновей, для ответа на этот вопрос можно рассчитать коэффициент корреляции.
Чтобы узнать больше о корреляции, обратитесь сюда.
Методы корреляционного анализа:
В основном есть два типа корреляции:
- Параметрическая корреляция - корреляция Пирсона (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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.