R 编程中的 Kendall 相关测试
相关性是一种统计量度,表明两个变量的相关程度。它还涉及多个变量之间的关系。例如,如果有人想知道父亲和儿子的身高之间是否存在关系,可以计算相关系数来回答这个问题。通常它介于 -1 和 +1 之间。它是协方差的缩放版本,提供关系的方向和强度。它是无量纲的。相关性主要有两种:
- 参数相关性- 皮尔逊相关性(r):它测量两个变量(x 和 y)之间的线性相关性,称为参数相关性检验,因为它取决于数据的分布。
- 非参数相关- Kendall(tau) 和 Spearman(rho):它们是基于秩的相关系数,被称为非参数相关。
Kendall 秩相关系数公式
Kendall Rank Correlation是基于秩的相关系数,也称为非参数相关。 Kendall 秩相关的计算公式如下:
where,
- Concordant Pair: A pair of observations (x1, y1) and (x2, y2) that follows the property
- x1 > x2 and y1 > y2 or
- x1 < x2 and y1 < y2
- Discordant Pair: A pair of observations (x1, y1) and (x2, y2) that follows the property
- x1 > x2 and y1 < y2 or
- x1 < x2 and y1 > y2
- n: Total number of samples
Note: The pair for which x1 = x2 and y1 = y2 are not classified as concordant or discordant are ignored.
R中的实现
R 语言提供了两种计算相关系数的方法。通过使用函数 cor() 或cor.test()
可以计算它。可以注意到, cor()
计算相关系数,而cor.test()
计算配对样本之间关联或相关性的测试。它返回相关系数和相关性的显着性水平(或 p 值)。
Syntax:
cor(x, y, method = “kendall”)
cor.test(x, y, method = “kendall”)
Parameters:
x, y: numeric vectors with the same length
method: correlation method
示例 1:
# 使用cor()
方法
例子:
# R program to illustrate
# Kendall Correlation Testing
# Using cor()
# Taking two numeric
# Vectors with same length
x = c(1, 2, 3, 4, 5, 6, 7)
y = c(1, 3, 6, 2, 7, 4, 5)
# Calculating
# Correlation coefficient
# Using cor() method
result = cor(x, y, method = "kendall")
# Print the result
cat("Kendall correlation coefficient is:", result)
输出:
Kendall correlation coefficient is: 0.4285714
# 使用cor.test()
方法
例子:
# R program to illustrate
# Kendall Correlation Testing
# Using cor.test()
# Taking two numeric
# Vectors with same length
x = c(1, 2, 3, 4, 5, 6, 7)
y = c(1, 3, 6, 2, 7, 4, 5)
# Calculating
# Correlation coefficient
# Using cor.test() method
result = cor.test(x, y, method = "kendall")
# Print the result
print(result)
输出:
Kendall's rank correlation tau
data: x and y
T = 15, p-value = 0.2389
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
0.4285714
在上面的输出中:
- T 是检验统计量的值 (T = 15)
- p 值是检验统计量的显着性水平(p 值 = 0.2389)。
- 替代假设是描述替代假设的字符(真字符串不等于 0)。
- 样本估计是相关系数。对于 Kendall 相关系数,它被命名为 tau (Cor.coeff = 0.4285)。
示例 2:
数据:在此处下载 CSV 文件。
例子:
# R program to illustrate
# Kendall Correlation Testing
# Import data into RStudio
df = read.csv("Auto.csv")
# Taking two column
# Vectors with same length
x = df$mpg
y = df$weight
# Calculating
# Correlation coefficient
# Using cor() method
result = cor(x, y, method = "kendall")
# Print the result
cat("Kendall correlation coefficient is:", result)
# Using cor.test() method
res = cor.test(x, y, method = "kendall")
print(res)
输出:
Kendall correlation coefficient is: -0.7517463
Kendall's rank correlation tau
data: x and y
z = -19.161, p-value < 2.2e-16
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
-0.7517463