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


Python SciPy stats.weightedtau用法及代码示例


本文简要介绍 python 语言中 scipy.stats.weightedtau 的用法。

用法:

scipy.stats.weightedtau(x, y, rank=True, weigher=None, additive=True)#

计算 Kendall 的 的加权版本。

加权 是 Kendall 的 的加权版本,其中高权重的交换比低权重的交换更有影响力。默认参数计算索引的加法双曲线版本 ,它已被证明可以在重要和不重要元素之间提供最佳平衡 [1]。

权重是通过一个秩数组定义的,它为每个元素分配一个非负秩(更高的重要性等级与较小的值相关联,例如,0 是可能的最高等级)和一个加权函数,它根据每个元素的排名。因此,交换的权重是交换元素的等级权重的总和或乘积。默认参数计算 :排名为 (从零开始)的元素之间的交换具有权重

仅当您考虑到外部重要性标准时,指定等级数组才有意义。如果像通常发生的那样,您没有考虑特定的排名,那么加权\(\tau\) 是通过对使用递减的词典排序获得的值进行平均来定义的 (x,y) 和 (y,x)。这是默认参数的行为。请注意,此处用于排名的约定(较低的值意味着较高的重要性)与其他 SciPy 统计函数使用的约定相反。

参数

x, y array_like

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

rank 数组 ints 或 bool,可选

分配给每个元素的非负排名。如果它是 None,将使用按 (x, y) 递减的字典顺序:排名较高的元素将是具有较大 x-values 的元素,使用 y-values 打破平局(特别是,交换 x 和 y 将给出结果不同)。如果为 False,则元素索引将直接用作排名。默认值为 True,在这种情况下,此函数返回使用由 (x, y) 和 (y, x) 递减的词典排序获得的值的平均值。

weigher 可调用的,可选的

称重函数。必须将非负整数(零表示最重要的元素)映射到非负权重。默认值 None 提供双曲线权重,即排名 映射到权重

additive 布尔型,可选

如果为 True,则通过将交换元素的排名权重相加来计算交换的权重;否则,权重相乘。默认值为真。

返回

资源:SignificanceResult

包含属性的对象:

统计 浮点数

加权 相关 index 。

p值 浮点数

目前np.nan,因为统计量的零分布未知(即使在加性双曲情况下)。

注意

这个函数使用一个\(O(n \log n)\) , 基于归并排序的算法[1]这是 Kendall 的 Knight 算法的加权扩展\(\tau\) [2].它可以计算 Shieh 的加权\(\tau\) [3]通过设置在没有关系的排名(即排列)之间添加剂为 False,如中给出的定义[1]是 Shieh 的概括。

NaNs 被认为是可能的最小分数。

参考

[1] (1,2,3)

Sebastiano Vigna,“A weighted correlation index for rankings with ties”,第 24 届万维网国际会议论文集,第 1166-1176 页,ACM,2015 年。

[2]

W.R. Knight,“用未分组数据计算 Kendall 的 Tau 的计算机方法”,美国统计协会杂志,第 1 卷。 61,第 314 期,第 1 部分,第 436-439 页,1966 年。

[3]

格蕾丝·S·谢。 “加权 Kendall 的 tau 统计”,统计与概率快报,卷。 39,第 1 期,第 17-24 页,1998 年。

例子

>>> import numpy as np
>>> from scipy import stats
>>> x = [12, 2, 1, 12, 2]
>>> y = [1, 4, 7, 1, 0]
>>> res = stats.weightedtau(x, y)
>>> res.statistic
-0.56694968153682723
>>> res.pvalue
nan
>>> res = stats.weightedtau(x, y, additive=False)
>>> res.statistic
-0.62205716951801038

NaNs 被认为是可能的最小分数:

>>> x = [12, 2, 1, 12, 2]
>>> y = [1, 4, 7, 1, np.nan]
>>> res = stats.weightedtau(x, y)
>>> res.statistic
-0.56694968153682723

这正是 Kendall 的 tau:

>>> x = [12, 2, 1, 12, 2]
>>> y = [1, 4, 7, 1, 0]
>>> res = stats.weightedtau(x, y, weigher=lambda x: 1)
>>> res.statistic
-0.47140452079103173
>>> x = [12, 2, 1, 12, 2]
>>> y = [1, 4, 7, 1, 0]
>>> stats.weightedtau(x, y, rank=None)
SignificanceResult(statistic=-0.4157652301037516, pvalue=nan)
>>> stats.weightedtau(y, x, rank=None)
SignificanceResult(statistic=-0.7181341329699028, pvalue=nan)

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.stats.weightedtau。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。