在统计学中,相关系数是用来衡量两个变量之间关系的统计量。皮尔逊相关系数用于评估变量之间的线性关系,而斯皮尔曼相关系数则用于评估单调关系。本文将深入探讨这两种相关系数的计算方法、解释、优势和局限性,以便在数据分析中选择适当的相关系数。
相关系数在机器学习和数据科学中扮演着“翻译器”的角色,帮助理解变量之间的“语言”——它们如何以及在何种方向上一起变化。以下是它们的重要性所在:
斯皮尔曼相关系数,也称为斯皮尔曼秩相关系数,是一种统计工具,它不假设直线关系,而是评估一个变量随着另一个变量变化时的上升或下降趋势。这种变化称为单调关系,可以是稳定的共同增加或共同减少。即使数据没有形成完美的直线,斯皮尔曼相关也能揭示这种潜在趋势。
以下是皮尔逊和斯皮尔曼相关系数的比较表:
方面 | 皮尔逊相关系数 | 斯皮尔曼相关系数 |
---|---|---|
目的 | 衡量线性关系 | 衡量单调关系 |
假设 | 变量正态分布,线性关系 | 变量具有单调关系,对分布无假设 |
计算方法 | 基于协方差和标准差 | 基于排名数据和等级顺序 |
值的范围 | -1到1 | -1到1 |
解释 | 线性关系的强度和方向 | 单调关系的强度和方向 |
对异常值的敏感性 | 对异常值敏感 | 对异常值不太敏感 |
数据类型 | 适用于区间和比率数据 | 适用于序数变量和非正态分布数据 |
样本大小 | 对于小样本大小不是最有效的选择 | 适用于小样本,不需要正态分布假设 |
用途 | 评估线性关联,参数测试 | 评估单调关联,非参数测试 |
假设想要确定一组学生的学习时间和考试成绩之间的关系。有以下五个学生的数据:
学生 | 学习时间(小时) | 考试成绩 |
---|---|---|
A | 10 | 75 |
B | 8 | 60 |
C | 12 | 85 |
D | 6 | 55 |
E | 9 | 70 |
首先,分别对学习时间和考试成绩进行排名:
学生 | 学习时间(小时) | 学习时间排名 | 考试成绩 | 考试成绩排名 |
---|---|---|---|---|
A | 10 | 3 | 75 | 3 |
B | 8 | 4 | 60 | 5 |
C | 12 | 1 | 85 | 1 |
D | 6 | 5 | 55 | 6 |
E | 9 | 2 | 70 | 4 |
接下来,计算每对学生数据点排名之间的差异:
Di = Rank of Study Time - Rank of Exam Score
学生 | Di |
---|---|
A | 0 |
B | -1 |
C | 0 |
D | -1 |
E | -2 |
然后,对每个Di值进行平方:
学生 | Di^2 |
---|---|
A | 0 |
B | 1 |
C | 0 |
D | 1 |
E | 4 |
所有Di^2的和为6。因此,学习时间和考试成绩之间的斯皮尔曼秩相关系数ρ为0.7,表明存在强烈的正相关。
确定黑樱桃树的周长和高度之间的关系(使用R中已经存在的数据集“trees”,可以通过输入数据集名称来访问,使用命令data()查看所有数据集列表)。
data <- trees
head(data, 3)
使用ggplot2库创建散点图:
library(ggplot2)
ggplot(data, aes(x = Girth, y = Height)) + geom_point() +
geom_smooth(method = "lm", se = TRUE, color = 'red')
进行相关性假设检验(使用Shapiro测试检查变量是否符合正态分布):
shapiro.test(data$Girth)
shapiro.test(data$Height)
计算相关性:
cor(data$Girth, data$Height, method = "pearson")
cor(data$Girth, data$Height, method = "spearman")
测试相关性的显著性(皮尔逊):
Pear <- cor.test(data$Girth, data$Height, method = 'pearson')
Pear
Spear <- cor.test(data$Girth, data$Height, method = 'spearman')
Spear