两个变量之间的 Pearson 系数相当高 (r=.65)。但是当我对变量值进行排序并运行 Spearman 相关时,系数值要低得多(r=.30)。
- 对此有何解释?
两个变量之间的 Pearson 系数相当高 (r=.65)。但是当我对变量值进行排序并运行 Spearman 相关时,系数值要低得多(r=.30)。
如果您的数据是正态分布或均匀分布的,我认为 Spearman 和 Pearson 的相关性应该非常相似。
如果他们给出的结果与您的情况截然不同(0.65 与 0.30),我的猜测是您的数据或异常值存在偏差,并且异常值导致 Pearson 的相关性大于 Spearman 的相关性。即,非常高的 X 值可能与非常高的 Y 值同时出现。
另请参阅有关 Spearman 和 Pearson 相关性之间差异的这些先前问题:
以下是如何发生这种情况的简单模拟。请注意,以下情况涉及单个异常值,但您可以使用多个异常值或倾斜数据产生类似的效果。
# Set Seed of random number generator
set.seed(4444)
# Generate random data
# First, create some normally distributed correlated data
x1 <- rnorm(200)
y1 <- rnorm(200) + .6 * x1
# Second, add a major outlier
x2 <- c(x1, 14)
y2 <- c(y1, 14)
# Plot both data sets
par(mfrow=c(2,2))
plot(x1, y1, main="Raw no outlier")
plot(x2, y2, main="Raw with outlier")
plot(rank(x1), rank(y1), main="Rank no outlier")
plot(rank(x2), rank(y2), main="Rank with outlier")
# Calculate correlations on both datasets
round(cor(x1, y1, method="pearson"), 2)
round(cor(x1, y1, method="spearman"), 2)
round(cor(x2, y2, method="pearson"), 2)
round(cor(x2, y2, method="spearman"), 2)
这给出了这个输出
[1] 0.44
[1] 0.44
[1] 0.7
[1] 0.44
相关性分析表明,没有离群值的 Spearman 和 Pearson 非常相似,而有相当极端的离群值时,相关性是完全不同的。
下图显示了将数据视为等级如何消除异常值的极端影响,从而导致 Spearman 在有异常值和没有异常值的情况下都相似,而 Pearson 在添加异常值时完全不同。这突出了为什么斯皮尔曼经常被称为健壮。