两个变量之间的关联强度称为相关性检验。例如,如果我们有兴趣知道父子的身高之间是否存在关系,可以计算相关系数来回答这个问题。
相关性分析方法:
主要有两种类型的相关性:
参数相关性 – 皮尔逊相关性 (r) :它测量两个变量(x 和 y)之间的线性依赖性被称为参数相关性检验,因为它取决于数据的分布。
非参数相关 – Kendall(tau) 和 Spearman(rho): 它们是基于秩的相关系数,称为非参数相关。
Kendall Rank 相关系数公式:
哪里
- 一致对:属性后面的一对观测值 (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