欢迎访问宙启技术站
智能推送

使用spearmanr()函数在Python中计算两个变量之间的排序相关性

发布时间:2023-12-17 04:40:19

spearmanr()函数是scipy库中stats模块下的方法,用于计算两个变量之间的排序相关性。它是基于Spearman等级相关系数的算法,适用于测量变量的等级或顺序相关性,而不是变量的线性相关性。

spearmanr()函数的语法如下:

scipy.stats.spearmanr(a, b=None, axis=0)

参数:

- a:待计算相关性的 个变量(一维数组、列表或Series)。

- b:待计算相关性的第二个变量(可选,与a的维度相同)。

- axis:用于计算两个变量的相关性的轴(可选,默认为0,表示沿着 个维度计算)。

返回值:

- correlation:Spearman等级相关系数的值。取值范围为[-1, 1],其中-1表示完全逆序相关,1表示完全顺序相关,0表示无相关性。

- pvalue:相关系数的p值。用于检验相关系数是否为0。

- ndof:样本大小减去相关系数的独立参数的个数。

下面通过一个例子来演示如何使用spearmanr()函数计算两个变量之间的排序相关性。

假设我们有两个变量x和y,我们想要计算它们之间的排序相关性。

import numpy as np
from scipy.stats import spearmanr

# 生成随机数据
np.random.seed(0)
x = np.random.randint(0, 10, 100)
y = np.random.randint(0, 10, 100)

# 计算排序相关系数
correlation, pvalue = spearmanr(x, y)

# 打印结果
print('Spearman correlation coefficient:', correlation)
print('P-value:', pvalue)

以上代码中,我们首先导入必要的库。然后使用numpy的randint()函数生成两个长度为100的随机整数数组x和y。

接下来,我们调用spearmanr()函数计算x和y之间的排序相关性。将返回的相关系数和p值分别赋值给correlation和pvalue变量。

最后,我们打印出结果,可以看到相关系数的值和p值。根据打印结果,可以判断x和y之间的排序相关性。

需要注意的是,spearmanr()函数返回的相关系数值越接近于-1或1,表示两个变量越相关,而接近于0则表示两个变量之间没有相关性。p值小于0.05则表示相关性是显著的。