当前位置: 首页>>代码示例>>用法及示例精选>>正文


python scipy stats.spearmanr用法及代码示例

用法:

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

计算关联的p-value的Spearman相关系数。

Spearman rank-order相关系数是两个数据集之间关系的单调性的非参数度量。与Pearson相关不同,Spearman相关并不假设两个数据集都是正态分布的。像其他相关系数一样,该系数在-1和+1之间变化,其中0表示无相关。 -1或+1的相关关系意味着确切的单调关系。正相关表明,随着x的增加,y也随之增加。负相关性表示随着x增加,y减小。

p-value粗略地表明了不相关系统生成的数据集具有Spearman相关性至少与从这些数据集计算得出的极端一样高的概率。 p-values并不完全可靠,但对于大于500左右的数据集可能是合理的。

参数:

a, b1D 或 2D array_like, b is 可选参数

一或两个包含多个变量和观测值的一维或二维数组。当它们是一维时,每个代表单个变量的观测向量。有关二维情况下的行为,请参见axis,如下。两个数组的长度必须相同axis尺寸。

axisint 或 None, 可选参数

如果axis = 0(默认),则每一列代表一个变量,在行中具有观察值。如果axis = 1,则转换关系:每行代表一个变量,而各列包含观察值。如果axis = None,则两个数组都将被整平。

nan_policy{‘propagate’, ‘raise’, ‘omit’}, 可选参数

定义当输入包含nan时如何处理。以下选项可用(默认值为‘propagate’):

  • ‘propagate’:returns nan

  • ‘raise’:throws an error

  • ‘omit’:performs the calculations ignoring nan values

返回值:

correlation浮点数或ndarray(二维正方形)

Spearman相关矩阵或相关系数(如果仅提供两个变量作为参数。相关矩阵是正方形,其长度等于in中的变量总数(列或行)ab结合。

pvalue浮动

假设检验的two-sided p-value的原假设是两组数据不相关,其维数与rho相同。

参考文献:

1

Zwillinger,D。和Kokoska,S。(2000)。 CRC标准概率和统计表及公式。查普曼和霍尔:纽约。 2000.第14.7节

例子:

>>> from scipy import stats
>>> stats.spearmanr([1,2,3,4,5], [5,6,7,8,7])
(0.82078268166812329, 0.088587005313543798)
>>> np.random.seed(1234321)
>>> x2n = np.random.randn(100, 2)
>>> y2n = np.random.randn(100, 2)
>>> stats.spearmanr(x2n)
(0.059969996999699973, 0.55338590803773591)
>>> stats.spearmanr(x2n[:,0], x2n[:,1])
(0.059969996999699973, 0.55338590803773591)
>>> rho, pval = stats.spearmanr(x2n, y2n)
>>> rho
array([[ 1.        ,  0.05997   ,  0.18569457,  0.06258626],
       [ 0.05997   ,  1.        ,  0.110003  ,  0.02534653],
       [ 0.18569457,  0.110003  ,  1.        ,  0.03488749],
       [ 0.06258626,  0.02534653,  0.03488749,  1.        ]])
>>> pval
array([[ 0.        ,  0.55338591,  0.06435364,  0.53617935],
       [ 0.55338591,  0.        ,  0.27592895,  0.80234077],
       [ 0.06435364,  0.27592895,  0.        ,  0.73039992],
       [ 0.53617935,  0.80234077,  0.73039992,  0.        ]])
>>> rho, pval = stats.spearmanr(x2n.T, y2n.T, axis=1)
>>> rho
array([[ 1.        ,  0.05997   ,  0.18569457,  0.06258626],
       [ 0.05997   ,  1.        ,  0.110003  ,  0.02534653],
       [ 0.18569457,  0.110003  ,  1.        ,  0.03488749],
       [ 0.06258626,  0.02534653,  0.03488749,  1.        ]])
>>> stats.spearmanr(x2n, y2n, axis=None)
(0.10816770419260482, 0.1273562188027364)
>>> stats.spearmanr(x2n.ravel(), y2n.ravel())
(0.10816770419260482, 0.1273562188027364)
>>> xint = np.random.randint(10, size=(100, 2))
>>> stats.spearmanr(xint)
(0.052760927029710199, 0.60213045837062351)

源码:

scipy.stats.spearmanr的API实现见:[源代码]

注:本文由纯净天空筛选整理自 scipy.stats.spearmanr。非经特殊声明,原始代码版权归原作者所有,本译文的传播和使用请遵循“署名-相同方式共享 4.0 国际 (CC BY-SA 4.0)”协议。