Python 语言 |Kendall Rank 相关系数

什么是相关性测试?

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

相关性分析方法:

主要有两种类型的相关性:

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

Python 语言 |Kendall Rank 相关系数的图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 = 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 行。设 for expert-1,

x1 = 1

x2 = 2

.同样,对于 expert-2,

y1 = 1

y2 = 3

.所以条件

x1 < x2

Y1 < Y2

satisfies,我们可以说 item-1 和 item-2 行是一致的对。同样,请查看 item-2 和 item-4 行。设 for expert-1,

x1 = 2

x2 = 4

.同样,对于 expert-2,

y1 = 3

y2 = 2

.所以条件

x1 < x2

Y1 > Y2

satisfies,我们可以说 item-2 和 item-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 因此通过应用 Kendall Rank Correlation Coefficient 公式

tau = (15 – 6) / 21 = 0.42857

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

kendalltau() :

在 Python 中计算 Kendall Rank 相关系数的 Python 函数

语法:kendalltau(x, y)
  • x, y:具有相同长度的数字列表

法典:

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

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

2
1