如何在 python 中执行相关性测试(带有示例)


量化两个变量之间关系的一种方法是使用Pearson 相关系数,它衡量两个变量之间的线性关联

它始终采用 -1 和 1 之间的值,其中:

  • -1表示完全负线性相关
  • 0表示没有线性相关
  • 1表示完全正线性相关

要确定相关系数是否具有统计显着性,您可以计算相应的 t 分数和 p 值。

相关系数 (r) 的 t 分数计算公式为:

t = r * √ n-2 / √ 1-r 2

然后将 p 值计算为具有 n-2 自由度的 t 分布的相应双尾 p 值。

示例:Python 中的相关性测试

要确定两个变量之间的相关系数是否具有统计显着性,您可以使用SciPy库中的pearsonr函数在 Python 中执行相关性测试。

此函数返回两个变量之间的相关系数以及双尾 p 值。

例如,假设我们在Python中有以下两个表:

 #create two arrays
x = [3, 4, 4, 5, 7, 8, 10, 12, 13, 15]
y = [2, 4, 4, 5, 4, 7, 8, 19, 14, 10]

我们可以导入pearsonr函数,计算两个表之间的Pearson相关系数:

 from scipy. stats . stats import pearsonr

#calculation correlation coefficient and p-value between x and y
pearsonr(x, y)

(0.8076177030748631, 0.004717255828132089)

以下是如何解释结果:

  • 皮尔逊相关系数(r): 0.8076
  • 两侧 p 值: 0.0047

相关系数接近 1,这告诉我们两个变量之间存在很强的正相关关系。

由于相应的 p 值小于 0.05,我们得出结论,两个变量之间存在统计上显着的关联。

请注意,我们还可以从皮尔逊函数中提取个体相关系数和 p 值:

 #extract correlation coefficient (rounded to 4 decimal places)
r = round(pearsonr(x, y)[ 0 ], 4)

print (r)

0.8076

#extract p-value (rounded to 4 decimal places) 
p = round(pearsonr(x, y)[ 1 ], 4)

print (p) 

0.0047

与原始pearsonr函数的输出相比,这些值更容易阅读。

其他资源

以下教程提供有关相关系数的其他信息:

皮尔逊相关系数简介
什么被认为是“强”相关性?
皮尔逊相关性的五个假设

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注