當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。