📜  Python|肯德尔等级相关系数

📅  最后修改于: 2022-05-13 01:55:49.075000             🧑  作者: Mango

Python|肯德尔等级相关系数

什么是相关性检验?
两个变量之间的关联强度称为相关性检验。例如,如果我们想知道父亲和儿子的身高之间是否存在关系,可以计算相关系数来回答这个问题。

有关相关性的更多信息,请参阅此。

相关分析方法:
相关性主要有两种:

  • 参数相关性 - 皮尔逊相关性(r):它测量两个变量(x 和 y)之间的线性相关性,称为参数相关性检验,因为它取决于数据的分布。
  • 非参数相关 - Kendall(tau)Spearman(rho):它们是基于秩的相关系数,被称为非参数相关。

Kendall 秩相关系数公式:

\tau=\frac{\text { Number of concordant pairs-Number of discordant pairs }}{n(n-1) / 2}

在哪里,

  • 一致对:遵循属性的一对观察值 (x1, y1) 和 (x2, y2)
    • x1 > x2 和 y1 > y2 或
    • x1 < x2 和 y1 < y2
  • Discordant Pair:遵循属性的一对观察值 (x1, y1) 和 (x2, y2)
    • x1 > x2 和 y1 < y2 或
    • x1 < x2 和 y1 > y2
  • n:样本总数

注意: x1 = x2y1 = y2的对不归类为一致或不一致,因此被忽略。

示例:让我们考虑下表中的两位专家对食品的排名。

ItemsExpert 1Expert 2
111
223
336
442
557
664
775

该表显示,对于 item-1,expert-1 给出 rank-1,而 Expert-2 也给出 rank-1。类似地,对于 item-2,expert-1 给出 rank-2,而 Expert-2 给出 rank-3,依此类推。

第1步:
首先,根据公式,我们要找到一致对的数量和不一致对的数量。所以看看 item-1 和 item-2 行。让专家 1, x1 = 1x2 = 2 。与专家 2 类似, y1 = 1y2 = 3 。所以条件x1 < x2y1 < y2满足,我们可以说 item-1 和 item-2 行是一致的对。

同样看一下 item-2 和 item-4 行。让专家 1, x1 = 2x2 = 4 。同样对于专家 2, y1 = 3y2 = 2 。所以条件x1 < x2y1 > y2满足,我们可以说 item-2 和 item-4 行是不一致的对。

像这样,通过比较每一行,您可以计算一致和不一致对的数量。完整的解决方案如下表所示。

1
2C
3CC
4CDD
5CCCC
6CCCDD
7CCCCDD
1234567

第2步:
所以从上表中,我们发现,
一致对数为:15
不一致对的数量为:6
样品/项目总数为:7

因此,通过应用肯德尔等级相关系数公式

tau = (15 – 6) / 21 = 0.42857

这个结果表明,如果它基本上很高,那么两位专家之间存在广泛的共识。否则,如果专家 1 完全不同意专家 2,您甚至可能得到负值。

kendalltau() :在Python中计算 Kendall 秩相关系数的Python函数

代码:说明 Kendall Rank 相关性的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


输出:

Kendall Rank correlation: 0.42857