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) ~= 1X = X';
end
%将Y变为行序列(如果Y已经是行序列则不作任何变化)
if size(Y , 1) ~= 1Y = Y';
endN = 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 - 1for j = i + 1 : Nif abs(sum(XY(: , i) ~= XY(: , j))) == 2 switch abs(sum(XY(: , i) > XY(: , j)))case 0C = C + 1;case 1D = D + 1;case 2C = C + 1;endendend
end%计算XPair中各个元素的值
while length(X) ~= 0cont = cont + 1;index = find(X == X(1));XPair(cont) = length(index);X(index) = [];
end
%计算YPair中各个元素的值
cont = 0;
while length(Y) ~= 0cont = 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
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/sddai/p/10323561.html

Kendall Rank(肯德尔等级)相关系数相关推荐

  1. 肯德尔系数怎么分析_Kendall Rank(肯德尔等级)相关系数

    1.简介 在统计学中,肯德尔相关系数是以Maurice Kendall命名的,并经常用希腊字母τ(tau)表示其值.肯德尔相关系数是一个用来测量两个随机变量相关性的统计值.一个肯德尔检验是一个无参数假 ...

  2. 皮尔逊、斯皮尔曼、肯德尔等级应用场景及代码实现(附Python代码)

    本文结合Python的scipy.stats,简单梳理皮尔逊Pearson.斯皮尔曼Spearman.肯德尔等级Kendallta三个相关系数的运用场景:及Python中如何计算三个相关系数. 1.统 ...

  3. 【matlab】matlab相关系数计算公式(Pearson和Spearman,以及Kendall Rank)

    原文地址:http://blog.sina.com.cn/s/blog_4a0824490100ync4.html Pearson相关系数用来衡量两个数据集合是否在一条线上面.其计算公式为: 一个具体 ...

  4. 肯德尔系数怎么分析_肯德尔相关分析.ppt

    计算次序-比率数据的肯氏相关系数 所谓次序-比率数据是指只有一个变量是次序(或等级)数据,另一个变量是定距以上的百分比数据 相关分析--肯德尔等级相关系数τb 下表: 文化程度与消费比率变量的关系示例 ...

  5. 斯皮尔 皮尔森 肯德尔_失焦图像的无参考质量评价

    刘玉涛 赵德斌 Abstract: Images are vulnerable to different kinds of distortions, such as blur, noise, bloc ...

  6. Pearson皮尔逊,Kendall肯德尔和Spearman斯皮尔曼三种相关分析方法的异同

    在SPSS软件相关分析中,pearson(皮尔逊),kendall(肯德尔)和spearman(斯伯曼/斯皮尔曼)三种相关分析方法有什么异同      两个连续变量间呈线性相关时,使用Pearson积 ...

  7. 肯德尔距离(Kendall’s-τ)

    肯德尔距离(Kendall's-τ) 肯德尔距离定义为两个序列Order排序的最小交换距离(定义是这样的,但直接理解成物品交换次数结果是一样的,不需要先转换成Order排序,只是转换后代码实现时算法的 ...

  8. 三大统计学相关系数(pearson皮尔森、spearman斯皮尔曼、kendall肯德尔)

    目录 1 person correlation coefficient(皮尔森相关性系数) 2 spearman correlation coefficient(斯皮尔曼相关性系数) 3 kendal ...

  9. 统计学三大相关系数之肯德尔(kendall)相关性系数

    肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量. 分类变量可以理解成有类别的变量,可以分为 无序的,比如性别(男.女).血型(A.B.O.AB): 有序的, ...

最新文章

  1. java开发cs项目_本硕机械转行cs(java后端开发)上岸之路
  2. boost::planar_canonical_ordering用法的测试程序
  3. 计算机网络专科升本科,目前专科升本科有哪几种途径?
  4. 腾讯或联姻优酷,微信嫁女模式引发互联网通婚潮流
  5. mysql5.7.13编译安装_MySQL 5.7.13 源码编译安装配置方法图文教程
  6. 性能测试--siege
  7. 【C/C++】基本数据类型的隐式类型转换
  8. JavaScript正则表达式与注册验证
  9. 利用Outlook应用程序接口执行Shellcode
  10. 【Solr原理】Leader Shard选举
  11. python监控桌面捕捉,用Python从屏幕上捕获视频数据
  12. 车路云一体化融合控制系统白皮书
  13. ZZULIOJ.1706: 神奇的编码
  14. C++ 模拟鼠标键盘操作
  15. 公众号引流进阶教程(公众号对接电影,影视资源)
  16. 4、IP信息查询API接口,免费好用
  17. 【Tensorflow 报错】struct.error: 'i' format requires -2147483648 = number = 2147483647
  18. 安卓简易音乐播放器实现
  19. 重启oracle服务后无法连接,解决oracle服务器重启之后连接报错的问题
  20. xml基础教程详细总结

热门文章

  1. Mac 技术篇-VS Code插件安装方法,查看vscode已安装插件的方法
  2. 二叉树的前序中序后序递归查找,深度,广度搜索C++实现(VS2017)
  3. 概率论与数理统计(三)
  4. Evince中文乱码
  5. [YTU]_2769( 结构体--成绩统计)
  6. pandas.Series.multiply()含义解释
  7. github如何删除一个repository【找不到settings】
  8. Ubuntu16.04中安装mininet
  9. java中byte转string的方法有哪些?
  10. VUE iscroll(银联二维码,浩哥页面用过)