📜  Python – 两个变量之间的 Pearson 相关性检验

📅  最后修改于: 2022-05-13 01:55:46.106000             🧑  作者: Mango

Python – 两个变量之间的 Pearson 相关性检验

什么是相关性检验?
两个变量之间的关联强度称为相关性检验。
例如,如果我们想知道父亲和儿子的身高之间是否存在关系,可以计算相关系数来回答这个问题。
有关相关性的更多信息,请参阅此。
相关分析方法:

  • 参数相关性:它测量两个变量(x 和 y)之间的线性相关性,称为参数相关性检验,因为它取决于数据的分布。
  • 非参数相关性:Kendall(tau)Spearman(rho)是基于秩的相关系数,被称为非参数相关性。

注意:最常用的方法是参数相关法。
皮尔逊相关公式:

笔记:

  • r 取值介于 -1(负相关)和 1(正相关)之间。
  • r = 0 表示没有相关性。
  • 不能应用于序数变量。
  • 样本量应适中(20-30)以进行良好估计。
  • 异常值可能导致误导值,意味着异常值不稳健。

要在Python中计算 Pearson 相关性,可以使用pearsonr()函数。
Python函数

数据:在此处下载 csv 文件。
代码:查找皮尔逊相关性的Python代码

Python3
# Import those libraries
import pandas as pd
from scipy.stats import pearsonr
 
# Import your data into Python
df = pd.read_csv("Auto.csv")
 
# Convert dataframe into series
list1 = df['weight']
list2 = df['mpg']
 
# Apply the pearsonr()
corr, _ = pearsonr(list1, list2)
print('Pearsons correlation: %.3f' % corr)
 
# This code is contributed by Amiya Rout


输出:

Pearson correlation is: -0.878

Anscombe 数据的 Pearson 相关性:
Anscombe 的数据也称为 Anscombe 的四重奏,由四个数据集组成,这些数据集具有几乎相同的简单统计属性,但在绘制图表时却显得非常不同。每个数据集由十一个 (x, y) 点组成。它们由统计学家 Francis Anscombe 于 1973 年构建,以证明在分析数据之前绘制数据的重要性以及异常值对统计特性的影响。
此处给出了这 4 组 11 个数据点。请在此处下载 csv 文件。
当我们绘制这些点时,它看起来像这样。我在这里考虑 3 组 11 个数据点。

上图简要说明:
因此,如果我们对每个数据集应用 Pearson 相关系数,我们会发现它几乎相同,无论您实际应用到第一个数据集(左上角)还是第二个数据集(右上角)还是第三个数据集都无关紧要数据集(左下)。
因此,它似乎表明,如果我们应用 Pearson 相关性,并且在第一个数据集(左上)情况下,我们发现高相关系数接近 1。关键点在这里,我们不能立即得出结论,如果皮尔逊相关系数会很高,那么它们之间存在线性关系,例如在第二个数据集(右上角)中,这是一种非线性关系,并且仍然会产生很高的价值。