R 编程中的 Pearson 相关测试
相关性是一种统计量度,表明两个变量的相关程度。它还涉及多个变量之间的关系。例如,如果有人想知道父亲和儿子的身高之间是否存在关系,可以计算相关系数来回答这个问题。通常,它介于 -1 和 +1 之间。它是协方差的缩放版本,提供关系的方向和强度。
R中的皮尔逊相关测试
相关性主要有两种:
- 参数相关性- 皮尔逊相关性(r):它测量两个变量(x 和 y)之间的线性相关性,称为参数相关性检验,因为它取决于数据的分布。
- 非参数相关- Kendall(tau) 和 Spearman(rho):它们是基于秩的相关系数,被称为非参数相关。
皮尔逊等级相关系数公式
Pearson 秩相关是一种参数相关。皮尔逊相关系数可能是两个正态分布变量之间线性关系最广泛使用的度量,因此通常被称为“相关系数”。计算 Pearson 秩相关的公式如下:
where,
- r: pearson correlation coefficient
- x and y: two vectors of length n
- mx and my: corresponds to the means of x and y, respectively.
笔记:
- r 取一个介于 -1(负相关)和 1(正相关)之间的值。
- r = 0 表示没有相关性。
- 不能应用于序数变量。
- 样本量应适中(20-30)以进行良好估计。
- 异常值可能导致误导值,意味着异常值不稳健。
R中的实现
R 语言提供了两种计算皮尔逊相关系数的方法。通过使用函数 cor() 或cor.test()可以计算它。可以注意到, cor()计算相关系数,而cor.test()计算配对样本之间的关联或相关性检验。它返回相关系数和相关性的显着性水平(或 p 值)。
Syntax: cor(x, y, method = “pearson”)
cor.test(x, y, method = “pearson”)
Parameters:
- x, y: numeric vectors with the same length
- method: correlation method
示例 1:使用 cor() 方法
R
# R program to illustrate
# pearson 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 = "pearson")
# Print the result
cat("Pearson correlation coefficient is:", result)
R
# R program to illustrate
# pearson 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 = "pearson")
# Print the result
print(result)
R
# R program to illustrate
# Pearson 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 = "pearson")
# Print the result
cat("Person correlation coefficient is:", result)
# Using cor.test() method
res = cor.test(x, y, method = "pearson")
print(res)
输出:
Pearson correlation coefficient is: 0.5357143
示例 2:使用 cor.test() 方法
R
# R program to illustrate
# pearson 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 = "pearson")
# Print the result
print(result)
输出:
Pearson's product-moment correlation
data: x and y
t = 1.4186, df = 5, p-value = 0.2152
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.3643187 0.9183058
sample estimates:
cor
0.5357143
在上面的输出中:
- T 是检验统计量的值 (T = 1.4186)
- p 值是检验统计量的显着性水平(p 值 = 0.2152)。
- 替代假设是描述字符串(真正的相关性不等于0)。
- 样本估计是相关系数。对于 Pearson 相关系数,它被命名为 cor (Cor.coeff = 0.5357)。
示例 3:
数据:在此处下载 CSV 文件。
R
# R program to illustrate
# Pearson 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 = "pearson")
# Print the result
cat("Person correlation coefficient is:", result)
# Using cor.test() method
res = cor.test(x, y, method = "pearson")
print(res)
输出:
Person correlation coefficient is: -0.8782815
Pearson's product-moment correlation
data: x and y
t = -31.709, df = 298, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.9018288 -0.8495329
sample estimates:
cor
-0.8782815