Python中的Pearson相关系数

2025年1月5日 | 阅读 3 分钟

引言

皮尔逊相关系数是一种统计度量,它定量地表示两个变量之间的线性关系。在金融、生物学和社会科学等许多领域,它已被用于研究两组测量值之间的关系的大小和方向。本文将讨论皮尔逊相关系数的概念及其在 Python 中的应用。

皮尔逊相关系数基础

定义

皮尔逊相关系数的取值范围在 -1 到 1 之间。它还指出,正值表示两个变量呈正相关,即当一个变量的值增加时,另一个变量的值也随之增加。然而,负号表示负相关或反相关:因此,如果一个变量集的值增加,则另一个变量集的值假定会减少。

公式

计算两个变量 x 和 y 之间相关性的公式如下:

Pearson Correlation in Python

理解假设

  1. 线性关系:皮尔逊相关系数假设变量之间存在线性关系。它可能不适合捕捉非线性关联。
  2. 同方差性:同方差性意味着回归线周围数据点的变异性是恒定的。违反此假设可能会影响皮尔逊相关系数的可靠性。
  3. 独立性:皮尔逊相关系数的假设是数据观测的独立性。如果数据点相关,可能会导致结果有偏差。

Python 实现

使用 NumPy 和 SciPy

借助 NumPy 和 SciPy 等库,Python 可以快速进行统计分析。让我们使用这些库来实现皮尔逊相关系数。

输出

Pearson correlation Coefficient:1.0

使用 Pandas

Pandas 是另一个流行的库,可以简化数据操作和分析。让我们探索如何使用 Pandas 计算皮尔逊相关系数。

输出

Pearson Correlation Coefficient: 0.9999999999999999

解释结果

  1. 相关强度:相关系数用于表示它们关联的强度或大小,值越大表示相关性越强。
  2. 显著性检验:相关系数应使用统计方法进行衡量。观测到的相关性与零值之间的差异程度如何?可以对其进行检验吗?

处理非数值数据

分类变量

在处理类别变量时,在计算皮尔逊相关系数之前,使用独热编码等方法将其转换为数值形式也很重要。

输出

DataFrame after one-hot encoding:
   X  Y  Category_B
0  1  2           0
1  2  3           1
2  3  4           0
3  4  5           1
4  5  6           0
Pearson Correlation Coefficient: 1.0

下表显示了对“Category”列进行独热编码后 DataFrame ‘(df_encoded)’ 的展示。该 DataFrame 包含一个附加的 category_B 列,提供了类别变量的二进制编码。还计算并报告了 X 和 Y 列之间的皮尔逊积矩相关值。例如,本例中的系数为 1.0,表明所讨论的变量之间存在完全的比例关系。

结论

因此,最后,在分析数据集中的变量关联时,有必要理解皮尔逊相关系数及其在 Python 中的实现。我们已经学习了皮尔逊相关系数、它的假设,并且还学习了在此过程中使用 NumPy、SciPy 和 Pandas 等 Python 库。我们还讨论了数据解释方法、处理非数值数据、缺失值以及将结果呈现为散点图和热力图。将这些方法集成到您的数据分析流程中,可以使您在变量之间的联系方面做出合理的、基于证据的决策。