关于Kendall correlation coefficient的介绍可参见:

维基百科:https://en.wikipedia.org/wiki/Kendall_rank_correlation_coefficient

scipy库:https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.kendalltau.html

写了两个版本的代码:

import numpy as np
from scipy.stats import kendalltaudata = np.array([[0.7,0.2,0.5,0],[0.6,0.1,0.1,0],[0.8,0.2,0.3,0],[0.6,0.3,0.5,0],[0.5,0.4,0.2,1],[0.4,0.5,0.3,1],[0.5,0.6,0.3,1],[0.4,0.5,0.1,1],[0.2,0.9,0.4,2],[0.2,1,0.6,2],[0.2,0.8,0.5,2],[0.1,1,0.1,2]])Lens =len(data)
count = 0
for i in range(Lens-1):for j in range(i+1,Lens):count = count + np.sign(data[i][0] - data[j][0]) * np.sign(data[i][2] - data[j][2])print('-----')
kendallCorrelation = count/((Lens*(Lens-1))/2)
kendallCorrelation_1,p_value = kendalltau(data[:,0],data[:,2])print(kendallCorrelation)
print(kendallCorrelation_1)
from scipy.stats import kendalltau
import numpy as np
a = [1,2,3,4,5,6,7,8,9,10]
b = [4,7,2,10,3,6,8,1,5,9]
# a = [12,2,1,12,2]
# b = [1,4,7,1,0]
Lens = len(a)
count = 0
number = 0
for i in range(Lens-1):for j in range(i+1,Lens):count = count + np.sign(a[i] - a[j]) * np.sign(b[i] - b[j])number += 1Kendallta1 = count/(Lens*(Lens-1)/2)
Kendallta2,p_value = kendalltau(a,b)
print(number)
print(count)
print(Kendallta1)
print(Kendallta2)

结果为啥算出来不一样呢?【原因:自己写的是1938年的tau系数,scipy库里面的1945年版本的tau】

下面是1945年版本的代码:

from scipy.stats import kendalltau
import numpy as np
a = [1,1,2,2,5,5,8,8,9,10]
b = [2,7,2,3,3,6,8,4,5,5]
# a = [12,2,1,12,2]
# b = [1,4,7,1,0]
Lens = len(a)ties_onlyin_x = 0
ties_onlyin_y = 0
con_pair = 0
dis_pair = 0
for i in range(Lens-1):for j in range(i+1,Lens):test_tying_x = np.sign(a[i] - a[j])test_tying_y = np.sign(b[i] - b[j])panduan =test_tying_x * test_tying_yif panduan == 1:con_pair +=1elif panduan == -1:dis_pair +=1if test_tying_y ==0 and test_tying_x != 0:ties_onlyin_y += 1elif test_tying_x == 0 and test_tying_y !=0:ties_onlyin_x += 1Kendallta1 = (con_pair - dis_pair)/np.sqrt((con_pair + dis_pair + ties_onlyin_x)*(dis_pair +con_pair + ties_onlyin_y))
Kendallta2,p_value = kendalltau(a,b)print(Kendallta1)
print(Kendallta2)

跑出来结果是一样的:

0.33737388489831593
0.33737388489831593

Python:Kendall tau相关系数的计算相关推荐

  1. Python+pandas计算数据相关系数(person、Kendall、spearman)

    pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数.Kendall Tau相关系数和spearman秩相 ...

  2. Python+pandas计算数据相关系数

    本文主要演示pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数.Kendall Tau相关系数和spea ...

  3. python皮尔森相关系数_Python计算皮尔逊 pearson相关系数

    pearson相关系数:用于判断数据是否线性相关的方法. 注意:不线性相关并不代表不相关,因为可能是非线性相关. Python计算pearson相关系数: 1. 使用numpy计算(corrcoef) ...

  4. Python数据分析学习笔记:计算相关系数

    Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...

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

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

  6. Pearson、Spearman秩相关系数、kendall等级相关系数

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

  7. 三大相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数的联系与区别

    三大统计相关系数:Pearson.Spearman秩相关系数.kendall等级相关系数 统计相关系数简介 Pearson(皮尔逊)相关系数 1.简介 2.适用范围 3.使用方法 Spearman R ...

  8. Kendall tau distance理解与分析

    简介 Kendall tau distance这个概念在平时如果不是专门接触到相关工作的话会显得比较陌生.它主要是一个用来比较两个向量之间相似度的概念.在一些数据分析和搜索引擎的结果相似度rankin ...

  9. python 科学计算基础教程电子版-自学Python 编程基础、科学计算及数据分析

    自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 ☆☆☆☆☆ 李金 著 ...

最新文章

  1. python语法手册-《Python 手册》pdf版电子书免费下载
  2. python实现:旋转矩阵转换为四元数
  3. python下划线变量的含义
  4. C语言二叉树的逆向有序遍历(附完整源码)
  5. 这是一个无效的源路径
  6. C++实现邻接表存储的图及bfs遍历
  7. PCL Lesson1 :PCL库PCLVisualizer的简单使用
  8. 【软件工程导论】可行性研究
  9. 标志寄存器02 - 零基础入门学习汇编语言55
  10. php实现mpg自动提取音轨,视频如何导出音轨 怎么将双音轨mpg提取其中一个音轨保存...
  11. 网路岗 - Cisco 交换机端口镜像配置图解
  12. Windows server 2012 R2 无法安装vc2015
  13. msm8953 单独编译bootloader、kernel和system,以及采用adb fastboot下载镜像的方法
  14. 美国大学计算机科学与物理,美国大学物理专业浅谈
  15. 机器学习备忘录 | 二分类模型常用评价指标汇总
  16. 电脑qq聊天记录迁移--备份与恢复
  17. 零基础想学大数据?别急!先搞清这一点
  18. win10系统每天凌晨3点左右,自动关机重启
  19. Win10 安装 UG10.0 UG8.5教程 --(及安装错误问题解决)--NX 8.5 NX 10.0 安装教程
  20. 两例司法实践撕开了一个口子,区块链应用落地会加速吗?

热门文章

  1. 计算机大学英语教材,大学英语教材在中国
  2. 【Python气象绘图临摹】处理数据(上):读入输出nc数据、截取夏季/冬季数据、ButterWorth带通滤波、计算方差
  3. matlab数值积分的计算
  4. Altium Designer 去除负片死铜的方法
  5. 旋转Koch雪花的绘制(MFC)
  6. atmega32u4-QMK小键盘调试记录
  7. java计算机毕业设计ssm+jsp成都美食推荐系统
  8. MySQL上升的温度
  9. 【芯选择】CC1101芯片的模块实例
  10. 学校旧机房电脑如何改造升级成云教室客户端 旧电脑改造成x86云终端