【数据科学】肯德尔等级相关系数( Kendall's tau coefficient )

在统计学中,Kendall等级相关系数,通常称为Kendall的tau系数(在希腊字母τ之后),是用于测量两个测量量之间的序数关联的统计量。甲tau蛋白测试是一种非参数假设检验用于基于所述tau蛋白系数统计依赖性。

它是衡量等级相关:数据的排序的相似度时排名由每个量。它以1938年开发的莫里斯·肯德尔命名,尽管古斯塔夫·费希纳在1897年的时间序列背景下提出了类似的措施。

直观地说,两个变量之间的Kendall相关将是高的,当观察具有类似的(或相同的为1的相关性)秩(变量内的观察,即相对位置标签:第一,第二,第三等)在两者之间变量,当观察结果与两个变量之间的排序不相似(或相关性完全不同)时,变量为低。

肯德尔都是\tau和斯皮尔曼的\rho可以表述为更一般的相关系数的特殊情况。

 

定义

令(1,  1),(2,  2),...,(n,  n)分别是联合随机变量XY的一组观察值,使得所有值(的))和()是独一无二的。任何一对观察 和 ,哪里 ,被认为是一致的,如果两个元件的行列(更精确地,由所述排序顺序X和由ÿ)同意:即,如果两个 和 ; 或两者兼而有之 和。他们被认为是不和谐的,如果 和 ; 或者如果 和。如果 要么,这对既不和谐也不矛盾。

肯德尔τ系数定义为:

 

属性

的分母是对组合的总数,所以系数一定要在范围-1≤  τ  ≤1。

  • 如果两个排名之间的一致性是完美的(即两个排名相同),则系数的值为1。
  • 如果两个排名之间的分歧是完美的(即,一个排名与另一个排名相反),则系数具有值-1。
  • 如果XY是独立的,那么我们期望系数近似为零。
  • 肯德尔秩系数的显式表达式是。

 

假设检验

肯德尔秩系数通常用作统计假设检验中的检验统计量,以确定两个变量是否可被视为统计依赖性。该测试是非参数的,因为它不依赖于对X或Y的分布或(X,Y)的分布的任何假设。

在X和Y独立的零假设下,τ的采样分布具有零的预期值。精确分布不能用共同分布来表征,但可以精确计算小样本; 对于较大的样本,通常使用正态分布的近似值,均值为零和方差

 

关系会计

一双如果被认为是并列的 要么 ; 束缚既不协调也不矛盾。当数据中出现绑定对时,可以通过多种方式修改系数以使其保持在[-1,1]范围内:

Tau-a

牛头-统计测试协会的强度的的交叉表格。这两个变量都必须是有序的。Tau-a不会对关系进行任何调整。它被定义为:

其中ncndn0的定义如下一节所述。

 

Tau-b

与Tau-a不同,Tau-b统计数据可以对关系进行调整。[5] Tau-b的值范围从-1(100%负相关或完全反转)到+1(100%正相关或完全一致)。值为零表示没有关联。

Kendall Tau-b系数定义为:

参数:

请注意,某些统计软件包(例如SPSS)使用替代公式来提高计算效率,其中“常用”数量是一致和不一致对的两倍。

 

Tau-c 

Tau-c(也称为Stuart-Kendall Tau-c)比Tau-b更适合于基于非正方形(即矩形)列联表的数据分析。因此,如果两个变量的基础比例具有相同数量的可能值(排名前),则使用Tau-b,如果它们不同,则使用Tau-c。例如,一个变量可能在5分制(非常好,好,平均,差,非常差)上得分,而另一个可能基于更精细的10分制。

肯德尔Tau-c系数定义为:

参数:

 

算法

直接计算分子,涉及两个嵌套迭代,由以下伪代码表征:

numer := 0
for i:=2..N do
    for j:=1..(i-1) do
        numer := numer + sign(x[i] - x[j]) * sign(y[i] - y[j])
return numer

虽然快速实现,但这个算法是在复杂性和大样本变得非常慢。基于合并排序算法的更复杂的算法可用于计算分子 时间。

首先按第一个数量排序您的数据点, 其次(在...中的关系))按第二数量,。通过这个初始订购,未排序,算法的核心包括计算冒泡排序将对此初始化进行排序所需的步数。增强的合并排序算法,带 复杂性,可用于计算掉期数量, ,冒泡排序需要排序。那么分子为 计算如下:

哪里  算得像 和,但关于联合关系 和。

一个归并排序划分的数据进行排序, 两个大致相等的一半, 和,然后对每一半递归进行排序,然后将两个已排序的一半合并为一个完全排序的向量。数冒泡排序互换等于:

哪里 和  是排序版本 和,和表征合并操作的冒号排序交换等价物。 计算如下面的伪代码所示:

function M(L[1..n], R[1..m])
    i := 1
    j := 1
    nSwaps := 0
    while i <= n  and j <= m do
        if R[j] < L[i] then
            nSwaps := nSwaps + n - i + 1
            j := j + 1
        else
            i := i + 1
    return nSwaps

上述步骤的副作用是您最终得到的排序版本 和一个排序版本。有了这些,因素 和 用来计算 很容易在单个线性时间内通过排序数组获得。

 

参考文献:https://en.wikipedia.org/wiki/Kendall_rank_correlation_coefficient

 

 

你可能感兴趣的:(Big,Data,Analysis,数据科学)