Answers:
如果您想浏览数据,则最好同时计算两者,因为Spearman(S)和Pearson(P)相关性之间的关系会提供一些信息。简而言之,S是按秩计算的,因此描述了单调关系,而P是真实值,并且描述了线性关系。
例如,如果您设置:
x=(1:100);
y=exp(x); % then,
corr(x,y,'type','Spearman'); % will equal 1, and
corr(x,y,'type','Pearson'); % will be about equal to 0.25
这是因为与单调增加,因此Spearman相关性是理想的,但不是线性的,因此Pearson相关性是不完美的。
corr(x,log(y),'type','Pearson'); % will equal 1
两者都很有趣,因为如果S> P,则意味着您具有单调但不是线性的相关性。由于统计数据具有线性关系(这很容易),因此可以尝试对进行转换(例如对数)。
我希望这有助于使相关类型之间的差异更容易理解。
最短且最正确的答案是:
皮尔逊(Pearson)基准线性关系,斯皮尔曼(Spearman)基准单调关系(无穷无穷的情况更普遍,但需要权衡取舍)。
因此,如果您假设/认为该关系是线性的(或者,作为一种特殊情况,它们是同一事物的两个量度,那么该关系为),那么情况就不会太奇怪(请查看其他答案以获取详细信息),请与Pearson一起使用。否则,请使用Spearman。
在统计中通常会发生这种情况:您可以根据情况采用多种方法,但您不知道选择哪种方法。您应该根据所考虑方法的优缺点和问题的具体情况来做出决定,但是即使这样,该决定通常还是主观的,没有商定的“正确”答案。通常,尝试尽可能多的合理方法是一个好主意,并且您的耐心将允许并查看最终哪种方法可以为您带来最佳效果。
皮尔森相关性与斯皮尔曼相关性之间的区别在于,皮尔森最适合于从间隔量表获取的测量值,而斯皮尔曼更适合于从序数表获取的测量值。间隔刻度的示例包括“温度单位为华氏度”和“长度单位为英寸”,其中各个单位(1华氏度,1英寸)是有意义的。诸如“满意度得分”之类的东西往往是序数类型的,因为虽然很明显“ 5个幸福”比“ 3个幸福”更快乐,但不清楚您是否可以对“ 1个幸福单位”做出有意义的解释。但是当你加起来 许多序数类型的度量(这就是您的情况)会导致最终得到的度量实际上既不是序数也不是间隔,并且难以解释。
我建议您将满意度分数转换为分位数分数,然后使用这些分数的总和,因为这将为您提供更易于解释的数据。但是即使在这种情况下,也不清楚Pearson还是Spearman是否更合适。
今天我遇到了一个有趣的极端案例。
如果我们查看的样本数量很少,则Spearman和Pearson之间的差异可能会很大。
在以下情况下,这两种方法报告的是完全相反的相关性。
决定Spearman对Pearson的一些快速经验法则:
ps这是用于重现上图的R代码:
# Script that shows that in some corner cases, the reported correlation for spearman can be
# exactly opposite to that for pearson. In this case, spearman is +0.4 and pearson is -0.4.
y = c(+2.5,-0.5, -0.8, -1)
x = c(+0.2,-3, -2.5,+0.6)
plot(y ~ x,xlim=c(-6,+6),ylim=c(-1,+2.5))
title("Correlation: corner case for Spearman vs. Pearson\nNote that they are exactly opposite each other (-0.4 vs. +0.4)")
abline(v=0)
abline(h=0)
lm1=lm(y ~ x)
abline(lm1,col="red")
spearman = cor(y,x,method="spearman")
pearson = cor(y,x,method="pearson")
legend("topleft",
c("Red line: regression.",
sprintf("Spearman: %.5f",spearman),
sprintf("Pearson: +%.5f",pearson)
))
在同意查尔斯答案的同时,我建议(在严格的实践水平上)建议您计算两个系数并查看差异。在许多情况下,它们将完全相同,因此您不必担心。
但是,如果它们不同,则需要查看是否满足Pearsons的假设(恒定方差和线性),如果不满足这些假设,则最好使用Spearmans。