如何在 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函数的输出相比,这些值更容易阅读。
其他资源
以下教程提供有关相关系数的其他信息: