scipy.stats.kendalltau

scipy.stats.kendalltau(x, y, initial_lexsort=None, nan_policy='propagate', method='auto', variant='b', alternative='two-sided')[源代码]

计算Kendall‘s tau,这是一种序数数据的相关性度量。

肯德尔的tau是衡量两个排名之间对应程度的指标。接近1的值表示强烈一致,接近-1的值表示强烈不一致。它实现了Kendall的tau的两个变体:tau-b(缺省)和tau-c(也称为Stuart的tau-c)。它们的不同之处仅在于如何将它们归一化到-1到1的范围内;假设检验(它们的p值)是相同的。肯德尔最初的tau-a没有单独实施,因为tau-b和tau-c在没有关联的情况下都会降为tau-a。

参数
x, yarray_like

相同形状的排名数组。如果数组不是一维的,它们将被展平为一维。

initial_lexsort布尔值,可选

未使用(已弃用)。

nan_policy{‘Propagate’,‘RAISE’,‘OMIT’},可选

定义输入包含NaN时的处理方式。以下选项可用(默认值为‘Propagate’):

  • ‘Propagate’:返回NaN

  • “raise”:引发错误

  • ‘omit’:执行计算时忽略NaN值

method{‘auto’,‘渐近’,‘精确’},可选

定义使用哪种方法计算p值 [5]. 以下选项可用(默认为‘AUTO’):

  • ‘auto’:根据速度和精度之间的权衡选择合适的方法

  • ‘渐近的’:使用对大样本有效的正态近似

  • ‘Exact’:计算精确的p值,但只能在没有关联的情况下使用。随着样本量的增加,“精确”计算时间可能会增加,结果可能会失去一些精度。

变量:{{‘b’,‘c’}},可选

定义返回Kendall的tau的哪个变体。默认值为“b”。

alternative{‘双面’,‘少’,‘大’},可选

定义了另一种假设。默认值为“双面”。以下选项可用:

  • ‘Two-Side’:等级相关性非零

  • ‘less’:等级相关性为负(小于零)

  • “较大”:等级相关为正(大于零)

退货
correlation浮动

τ统计数据。

pvalue浮动

假设检验的p值,其零假设是无关联的,tau=0。

参见

spearmanr

计算Spearman秩相关系数。

theilslopes

计算一组点(x,y)的Theil-Sen估计量。

weightedtau

计算Kendall的τ的加权版本。

注意事项

使用的肯德尔τ的定义是 [2]:

tau_b = (P - Q) / sqrt((P + Q + T) * (P + Q + U))

tau_c = 2 (P - Q) / (n**2 * (m - 1) / m)

其中P是协调对的数目,Q是不协调对的数目,T是仅在 x ,而U仅为中的平局数 y 。如果同一对在两者中出现平局 xy ,它不会加到T或U上。n是样本总数,m是任一项中唯一值的数量。 xy ,以较小者为准。

参考文献

1

莫里斯·G·肯德尔,“一种新的等级相关性度量”,“比尤里斯卡”第30卷,第1/2期,第81-93页,1938年。

2

莫里斯·G·肯德尔,“排名问题中纽带的处理”,“比丘利斯卡”第33卷,第3期,第239-251页。1945年。

3

戈特弗里德·E·诺特,“非参数统计要素”,约翰·威利父子出版社,1967。

4

Peter M.Fenwick,“一种用于累积频率表的新数据结构”,“软件:实践与经验”,第24卷,第3期,第327-336页,1994年。

5

莫里斯·G·肯德尔,“秩相关方法”(第4版),查尔斯·格里芬公司,1970年。

示例

>>> from scipy import stats
>>> x1 = [12, 2, 1, 12, 2]
>>> x2 = [1, 4, 7, 1, 0]
>>> tau, p_value = stats.kendalltau(x1, x2)
>>> tau
-0.47140452079103173
>>> p_value
0.2827454599327748