数学笔记:pearson correlation coefficient VS spearman correlation coefficient

相关性是衡量两个变量间线性关系强度的统计指标,但并不一定表示因果关系。Pearson相关系数衡量线性相关性,取值在-1到1之间,而Spearman相关系数关注变量排名间的单调关系。Spearman适用于非线性但单调的关系。在数据分析中,选择合适的相关系数能更准确地捕捉变量间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 correlation 相关性

        相关性是两个变量线性相关的程度。 这是双变量数据分析的重要步骤。 

        相关性并不意味着因果关系

让我们通过两个例子来了解它的实际含义。

  • 夏季,冰淇淋的消费量会增加。
    • ——>气候(或者说是季节)和 冰淇淋的销售额之间存在很强的相关性。
    • 在这个特殊的例子中,我们看到存在因果关系,因为极端的夏季确实推动了冰淇淋的销售。
  • 冰淇淋的销售或许与鲨鱼袭击有很强的相关性。
    • ——>现在我们可以在这里非常清楚地看到,鲨鱼袭击绝对不是因为冰淇淋造成的。 所以,这里没有因果关系。

1.1 相关系数

        相关系数是对两个变量的相关性强度的统计量度。 值范围在 -1.0 和 1.0 之间。

  • -1.0 的相关性表示完全的负相关,
  •  1.0 的相关性表示完全的正相关。
  • 0.0 的相关性表明两个变量的之间没有线性关系。

2 Pearson Correlation Coefficient

NTU 课程笔记: CV6422 regression_UQI-LIUWJ的博客-CSDN博客

        在统计学中,皮尔逊相关系数也称为皮尔逊 r 或双变量相关性,是衡量两个变量 X 和 Y 之间线性相关性的统计量。它的值介于 +1 和 -1 之间。 +1 的值是总正线性相关,0 是非线性相关,-1 是总负线性相关。

        下图是皮尔逊相关系数 在变量之间相关性   方向&强度  不同时 的不同情况

 3  Spearman Correlation Coefficient

NTU 课程笔记:Nonparametric statistics_UQI-LIUWJ的博客-CSDN博客

        在统计学中, Spearman相关系数或 Spearman ρ 是rank相关性的非参数度量(两个变量的rank之间的统计相关性)。 它评估使用单调函数可以描述两个变量之间的关系的程度。

        我们不难发现二者的区别,spearman这里强调的时“单调”,也就是增幅不同也不要紧,只要两个同增同减即可(比如下面的左图和中图)

 4 二者的区别

        两个相关系数之间的根本区别在于,Pearson系数适用于两个变量之间的线性关系,而Spearman系数适用于单调关系

        因此,如果我们觉得散点图在视觉上表明“可能是单调的,可能是线性的”关系,我们最好的选择是应用 Spearman 而不是 Pearson。 即使数据证明是完全线性的,切换到 Spearman 也不会造成任何伤害。 但是,如果它不是完全线性的并且我们使用 Pearson 系数,那么我们将错过 Spearman 可以捕获的“单调”信息。

下面举几个例子,就能很好地说明了:

——>正好是完全的线性

 

spearman 可以体现正向单调性;pearson可以体现有较强的正线性

 

杂乱无章,二者都体现不出任何的特征 

 

 ——>正好是完全的负线性,所以使用哪个都可以

 

spearman 可以体现负向单调性;pearson可以体现有较强的负线性

参考内容:Clearly explained: Pearson V/S Spearman Correlation Coefficient | by Juhi Ramzai | Towards Data Science

### 皮尔逊相关系数概述 在统计学机器学习领域,皮尔逊相关系数(Pearson Correlation Coefficient)是一种用于衡量两个连续变量之间线关系强度的指标[^2]。其取值范围介于 -1 +1 之间。正值表示正相关,即随着一个变量增加,另一个变量也倾向于增加;负值则表示负相关,意味着当一个变量增加时,另一个变量会减少。 计算皮尔逊相关系数的方法基于协方差与标准差的关系: ```python import numpy as np def pearson_correlation(x, y): cov_matrix = np.cov(x, y) covariance = cov_matrix[0][1] std_x = np.std(x) std_y = np.std(y) if std_x * std_y != 0: return covariance / (std_x * std_y) else: raise ValueError("One of the standard deviations is zero.") ``` 上述代码展示了如何手动实现皮尔逊相关系数的计算过程。通过该函数可以得出两组数据之间的相关程度。 #### 统计显著的检验 除了计算相关系数外,还需要验证所得的相关性是否具有统计意义。这通常涉及假设检验的过程,在此过程中零假设(H₀)认为样本间无关联。如果p值接近于零,则表明有足够的证据拒绝原假设,从而确认两者存在显著相关性[^3]。 对于实际应用而言,许多编程库已经内置了这些功能,例如Python中的`scipy.stats.pearsonr()`可以直接返回相关系数及其对应的p值。 ```python from scipy.stats import pearsonr corr_coefficient, p_value = pearsonr(data_vector_1, data_vector_2) print(f"Pearson's r: {corr_coefficient}, P-value: {p_value}") ``` 这段脚本利用SciPy包快速获取皮尔逊相关系数以及相应的概率值来判断结果的重要水平。 ### 结论 综上所述,皮尔逊相关系数不仅能够量化两个数值型属间的联系紧密度,而且配合恰当的测试手段还可以评估这种联系的真实。值得注意的是,尽管它非常有用,但它仅适用于检测线模式下的依赖结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值