📜  R 编程中的 Kendall 相关测试

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

R 编程中的 Kendall 相关测试

相关性是一种统计量度,表明两个变量的相关程度。它还涉及多个变量之间的关系。例如,如果有人想知道父亲和儿子的身高之间是否存在关系,可以计算相关系数来回答这个问题。通常它介于 -1 和 +1 之间。它是协方差的缩放版本,提供关系的方向和强度。它是无量纲的。相关性主要有两种:

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

Kendall 秩相关系数公式

Kendall Rank Correlation是基于秩的相关系数,也称为非参数相关。 Kendall 秩相关的计算公式如下:

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

R中的实现

R 语言提供了两种计算相关系数的方法。通过使用函数 cor() 或cor.test()可以计算它。可以注意到, cor()计算相关系数,而cor.test()计算配对样本之间关联或相关性的测试。它返回相关系数和相关性的显着性水平(或 p 值)。

示例 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