1、简介
在统计学中,肯德尔相关系数是以Maurice Kendall命名的,并经常用希腊字母τ(tau)表示其值。肯德尔相关系数是一个用来测量两个随机变量相关性的统计值。一个肯德尔检验是一个无参数假设检验,它使用计算而得的相关系数去检验两个随机变量的统计依赖性。肯德尔相关系数的取值范围在-1到1之间,当τ为1时,表示两个随机变量拥有一致的等级相关性;当τ为-1时,表示两个随机变量拥有完全相反的等级相关性;当τ为0时,表示两个随机变量是相互独立的。

假设两个随机变量分别为X、Y(也可以看做两个集合),它们的元素个数均为N,两个随即变量取的第i(1<=i<=N)个值分别用Xi、Yi表示。X与Y中的对应元素组成一个元素对集合XY,其包含的元素为(Xi, Yi)(1<=i<=N)。当集合XY中任意两个元素(Xi, Yi)与(Xj, Yj)的排行相同时(也就是说当出现情况1或2时;情况1:Xi>Xj且Yi>Yj,情况2:Xi<Xj且Yi<Yj),这两个元素就被认为是一致的。当出现情况3或4时(情况3:Xi>Xj且Yi<Yj,情况4:Xi<Xj且Yi>Yj),这两个元素被认为是不一致的。当出现情况5或6时(情况5:Xi=Xj,情况6:Yi=Yj),这两个元素既不是一致的也不是不一致的。

这里有三个公式计算肯德尔相关系数的值

公式一:

其中C表示XY中拥有一致性的元素对数(两个元素为一对);D表示XY中拥有不一致性的元素对数。

注意:这一公式仅适用于集合X与Y中均不存在相同元素的情况(集合中各个元素唯一)。

公式二:

注意:这一公式适用于集合X或Y中存在相同元素的情况(当然,如果X或Y中均不存在相同的元素时,公式二便等同于公式一)。

其中C、D与公式一中相同;

N1、N2分别是针对集合X、Y计算的,现在以计算N1为例,给出N1的由来(N2的计算可以类推):

将X中的相同元素分别组合成小集合,s表示集合X中拥有的小集合数(例如X包含元素:1 2 3 4 3 3 2,那么这里得到的s则为2,因为只有2、3有相同元素),Ui表示第i个小集合所包含的元素数。N2在集合Y的基础上计算而得。

公式三:

注意:这一公式中没有再考虑集合X、或Y中存在相同元素给最后的统计值带来的影响。公式三的这一计算形式仅适用于用表格表示的随机变量X、Y之间相关系数的计算(下面将会介绍)。

参数M稍后会做介绍。

以上都是围绕用集合表示的随机变量而计算肯德尔相关系数的,下面所讲的则是围绕用表格表示的随机变量而计算肯德尔相关系数的。

通常人们会将两个随机变量的取值制作成一个表格,例如有10个样本,对每个样本进行两项指标测试X、Y(指标X、Y的取值均为1到3)。根据样本的X、Y指标取值,得到以下二维表格(表1):

由表1可以得到X及Y的可以以集合的形式表示为:

X={1, 1, 2, 2, 2, 2, 2, 3, 3, 3};

Y={1, 2, 1, 1, 2, 2, 3, 2, 3, 3};

得到X、Y的集合形式后就可以使用以上的公式一或公式二计算X、Y的肯德尔相关系数了(注意公式一、二的适用条件)。

当然如果给定X、Y的集合形式,那么也是很容易得到它们的表格形式的。

这里需要注意的是:公式二也可以用来计算表格形式表示的二维变量的肯德尔相关系数,不过它一般用来计算由正方形表格表示的二维变量的肯德尔相关系数,公式三则只是用来计算由长方形表格表示的二维变量的Kendall相关系数。这里给出公式三中字母M的含义,M表示长方形表格中行数与列数中较小的一个。表1的行数及列数均为三。

2、适用范围 
肯德尔相关系数与斯皮尔曼相关系数对数据条件的要求相同,可参见统计相关系数(2)--Spearman Rank(斯皮尔曼等级)相关系数及MATLAB实现中介绍的斯皮尔曼相关系数对数据条件的要求。

3、Matlab实现
源程序一:

肯德尔相关系数的Matlab实现(依据公式二得到)

function coeff = myKendall(X , Y)
% 本函数用于实现肯德尔等级相关系数的计算操作
%
% 输入:
% X:输入的数值序列
% Y:输入的数值序列
%
% 输出:
% coeff:两个输入数值序列X,Y的相关系数 if length(X) ~= length(Y)
error('两个数值数列的维数不相等');
return;
end %将X变为行序列(如果X已经是行序列则不作任何变化)
if size(X , 1) ~= 1
X = X';
end
%将Y变为行序列(如果Y已经是行序列则不作任何变化)
if size(Y , 1) ~= 1
Y = Y';
end N = length(X); %得到序列的长度
XY = [X ; Y]; %得到合并序列
C = 0; %一致性的数组对数
D = 0; %不一致性的数组对数
N1 = 0; %集合X中相同元素总的组合对数
N2 = 0; %集合Y中相同元素总的组合对数
N3 = 0; %合并序列XY的总对数
XPair = ones(1 , N); %集合X中由相同元素组成的各个子集的元素数
YPair = ones(1 , N); %集合Y中由相同元素组成的各个子集的元素数
cont = 0; %用于计数 %计算C与D
for i = 1 : N - 1
for j = i + 1 : N
if abs(sum(XY(: , i) ~= XY(: , j))) == 2
switch abs(sum(XY(: , i) > XY(: , j)))
case 0
C = C + 1;
case 1
D = D + 1;
case 2
C = C + 1;
end
end
end
end %计算XPair中各个元素的值
while length(X) ~= 0
cont = cont + 1;
index = find(X == X(1));
XPair(cont) = length(index);
X(index) = [];
end
%计算YPair中各个元素的值
cont = 0;
while length(Y) ~= 0
cont = cont + 1;
index = find(Y == Y(1));
YPair(cont) = length(index);
Y(index) = [];
end %计算N1、N2及N3的值
N1 = sum(0.5 * (XPair .* (XPair - 1)));
N2 = sum(0.5 * (YPair .* (YPair - 1)));
N3 = 0.5 * N * (N - 1); coeff = (C - D) / sqrt((N3 - N1) * (N3 - N2)); end %函数myKendall结束

  

源程序二:

使用Matlab中已有的函数计算肯德尔相关系数

coeff = corr(X , Y , 'type' , 'Kendall');

  

注意:使用Matlab自带函数计算肯德尔相关系数时,需要保证X、Y均为列向量;Matlab自带的函数是通过公式二计算序列的肯德尔相关系数的。

这里还有另外一种不是计算肯德尔相关系数的公式(仅适用于集合X与Y中均不存在相同元素的情况,实际上其与公式一等价),可见参考文献(3)。

4、参考内容
(1)、http://en.wikipedia.org/wiki/Kendall_tau_rank_correlation_coefficient

(2)、http://www.unesco.org/webworld/idams/advguide/Chapt4_2.htm

(3)、http://www.wikidoc.org/index.php/Kendall_tau_rank_correlation_coefficient
---------------------
作者:wsywl
来源:CSDN
原文:https://blog.csdn.net/wsywl/article/details/5889419
版权声明:本文为博主原创文章,转载请附上博文链接!

Kendall Rank(肯德尔等级)相关系数的更多相关文章

  1. Kendall's tau-b(肯德尔)等级相关系数

    Kendall's tau-b(肯德尔)等级相关系数:用于反映分类变量相关性的指标,适用于两个分类变量均为有序分类的情况.对相关的有序变量进行非参数相关检验:取值范围在-1-1之间,此检验适合于正方形 ...

  2. Spearman Rank(斯皮尔曼等级)相关系数

    转自:http://blog.csdn.net/wsywl/article/details/5859751 1.简介 在统计学中,斯皮尔曼等级相关系数以Charles Spearman命名,并经常用希 ...

  3. 赛肯德 | 2017NEERC某题

    我们枚举每一条边的流量x,将它作为底流(也就是比它大的的流量变成差值,比它小的流量为0),然后我们设x就是路径上第K大的那个边的流量.然后跑最短路,加上dis[n]就是当前的答案.然后取min即可. ...

  4. r_action

    皮尔逊相关系数 斯皮尔曼等级相关(Spearman Rank Correlation) http://wiki.mbalib.com/wiki/斯皮尔曼等级相关 从表中的数字可以看出,工人的考试成绩愈 ...

  5. brdd 惰性执行 mapreduce 提取指定类型值 WebUi 作业信息 全局临时视图 pyspark scala spark 安装

    [rdd 惰性执行] 为了提高计算效率 spark 采用了哪些机制 1-rdd 基于分布式内存数据集进行运算 2-lazy evaluation  :惰性执行,即rdd的变换操作并不是在运行该代码时立 ...

  6. 学习笔记78—三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数

    ****************************************************** 如有谬误,请联系指正.转载请注明出处. 联系方式: e-mail: heyi9069@gm ...

  7. 三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数

    统计相关系数简介 由于使用的统计相关系数比较频繁,所以这里就利用几篇文章简单介绍一下这些系数. 相关系数:考察两个事物(在数据里我们称之为变量)之间的相关程度. 如果有两个变量:X.Y,最终计算出的相 ...

  8. 三大相关系数: pearson, spearman, kendall(python示例实现)

    三大相关系数:pearson, spearman, kendall 统计学中的三大相关性系数:pearson, spearman, kendall,他们反应的都是两个变量之间变化趋势的方向以及程度,其 ...

  9. Spearman Rank(斯皮尔曼等级)相关系数及MATLAB实现

    转自:http://blog.csdn.net/wsywl/article/details/5859751 Spearman Rank(斯皮尔曼等级)相关系数 1.简介 在统计学中,斯皮尔曼等级相关系 ...

随机推荐

  1. “漂亮的”排序算法 Stooge Sort 如何完成排序

    Stooge Sort 是一种低效的递归排序算法,甚至慢于冒泡排序.在<算法导论>第二版第7章(快速排序)的思考题中被提到,是由Howard.Fine等教授提出的所谓“漂亮的”排序算法. ...

  2. JSONObject 自定义过滤配置

    一.自定义过滤器说明 PropertyPreFilter 根据PropertyName判断是否序列化  PropertyFilter 根据PropertyName和PropertyValue来判断是否 ...

  3. SpringMVC(十) RequestMapping RequestHeader注解

    在控制器方法中,通过类似 RequestHeader(value="Accept-Lanaguage") String lan 可以获取请求头信息. 控制器方法: package ...

  4. 手动搭建ABP2.1.3 Zero——基础框架

    一.基础层搭建 二.PM.Core 三.PM.EntityFramework 四.PM.Application 五.PM.WebApi 六.PM.Web(MPA) 七.PM.Web(SPA) 八.单元 ...

  5. 如何将你的github仓库部署到github pages

    很多时候我都在思考一个问题,我们每天遇到各种各样的问题,然后我们需要不断google.百度,达到我们解决问题的目的.但是在这个过程中,我们总是能够见到,对于同一个问题,总是有大量错误.copy的博客. ...

  6. ELASTIC的备份与恢复

    前言 elasticsearch官方并没有提供合适的备份工具,然而生产场景中备份却是的确需要的. 本文介绍了使用自己写的php脚本以及第三方工具来进行索引的备份,恢复以及删除等操作. 全量备份 ela ...

  7. 七层负载(Application Gateway)+四层负载(LB)

    上次有个电商客户需要搭建如架构. 192.168.1.100/url1(请求url)——>Node1:10.0.0.4.10.0.0.5(服务器IP) 192.168.1.100/url2(请求 ...

  8. MikroTik RouterOS 5.x使用HunterTik 2.3.1进行破解

    一.加载光驱: 二.一路回车: 三.说明: 1.可以不安装Debian内核,但如果在无缝升级到6.6的版本,此项就一定要选择. 2.6版本的破解必须小于等于1G的空间,不然无法破解成功,亲测有效,如果 ...

  9. WPF中的3D变换PlaneProjection

    在UWP中有一个比较好用的伪3D变换PlaneProjection,可以以一种轻量级和非常简单的方式实现3D的效果.这种效果在Silverlight中也有这种变换,但在WPF中确一直没有提供. 虽然W ...

  10. Android开发之解决APP启动白屏或者黑屏闪现的问题

    在做搜芽的过程中,发现那个外包人缘做的不行,由于启动的时候会停顿,然后白屏一会,联想到几个月前我在我的三僚企业通信软件里面拉起9K-Mail的时候也会黑屏,所以决定学习一下.解决一下.这不,万能的网络 ...