目录

    • person correlation coefficient(皮尔森相关性系数-r)
    • spearman correlation coefficient(斯皮尔曼相关性系数-p)
    • kendall correlation coefficient(肯德尔相关性系数-k)
    • R语言计算correlation

在文献以及各种报告中,我们可以看到描述数据之间的相关性:pearson correlation,spearman correlation,kendall correlation。它们分别是什么呢?计算公式?怎样用R语言简单实现计算呢?本文一一介绍~
建议前期阅读:协方差与相关系数-“傻傻”也能分清

总的来讲,三个相关性系数(pearson, spearman, kendall)反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强

person correlation coefficient(皮尔森相关性系数-r)

公式:

两个变量(X, Y)的皮尔森相关性系数(ρX,Y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。(分母是变量的标准差,这就意味着变量的标准差不能为0(分母不能为0),也就是说你每个变量所包含值不能都是相同的。如果没有变化,方差为0,那么是无法计算的)

方差是表示一个变量的波动情况,方差越小表示数据越集中,越大表示数据越离散;
标准差:等于(或近似等于)方差的开根号;
协方差:可以理解成两个变量之间的方差,其取值可以是负无穷到正无穷,它可以表示两个变量之间的变化趋势,但是不能表示它们之间的程度

局限性:

  • 实验数据通常假设是成对的来自于正态分布的总体。为啥通常会假设为正态分布呢?因为我们在求皮尔森相关性系数以后,通常还会用t检验之类的方法来进行皮尔森相关性系数检验。
  • 实验数据之间的差距不能太大,或者说皮尔森相关性系数受异常值的影响比较大。因为根据公式可以看到是直接是用x,y的值进行计算。相对应的spearman correlation对异常值不敏感,因为它是属于rank test,具体见下面介绍。

spearman correlation coefficient(斯皮尔曼相关性系数-p)

通常也叫斯皮尔曼相关系数。

“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解,而不是直接是用x,y的值进行求解(因此对异常值不敏感,也不要求正态分布)。
公式:

计算过程就是:

  1. 获得秩次:记下原始X Y值得排序位置(X’, Y’),(X’, Y’)的值就称为秩次
  2. 对两个变量(X, Y)的数据进行排序
  3. 计算两个变量秩次的差值,也就是上面公式中的di,n就是变量中数据的个数
  4. 最后带入公式就可求解结果。
    举个例子吧,假设我们实验的数据如下:

带入公式,求得斯皮尔曼相关性系数:ρ(s)= 1-6*(1+1+1+9)/6*35=0.657
不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了。(如果原始数据中有重复值,则在求秩次时要以它们的平均值为准)

优势:

  • 即便在变量值没有变化的情况下,也不会出现像皮尔森系数那样分母为0而无法计算的情况。
  • 即使出现异常值,由于异常值的秩次通常不会有明显的变化(比如过大或者过小,那要么排第一,要么排最后),所以对斯皮尔曼相关性系数的影响也非常小
  • 斯皮尔曼相关性系数没有那些数据条件要求,适用的范围广

pearson和spearman都是衡量连续型变量间的相关性,那么如果是分类变量呢?

kendall correlation coefficient(肯德尔相关性系数-k)

肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。分类变量可以理解成有类别的变量,可以分为无序的,比如性别(男、女)、血型(A、B、O、AB),以及有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。通常需要求相关性系数的都是有序分类变量

例子:比如评委对选手的评分(优、中、差等),我们想看两个(或者多个)评委对几位选手的评价标准是否一致;或者医院的尿糖化验报告,想检验各个医院对尿糖的化验结果是否一致,这时候就可以使用肯德尔相关性系数进行衡量。

由于数据情况不同,求得肯德尔相关性系数的计算公式不一样,一般有3种计算公式,在这里就不繁琐地列出计算公式了,具体感兴趣的话可以自行搜寻资料。

R语言计算correlation

x <- c(seq(10))
y <- c(seq(11,20))
res <- cor.test(x, y,method = "pearson") # method 参数修改:“spearman","kendall"
# 具体见 ?cor.test

参考链接:聊聊统计学三大相关性系数

统计学三大相关性系数:pearson,spearman,kendall的更多相关文章

  1. 相关性分析 -pearson spearman kendall相关系数

    先说独立与相关的关系:对于两个随机变量,独立一定不相关,不相关不一定独立.有这么一种直观的解释(不一定非常准确):独立代表两个随机变量之间没有任何关系,而相关仅仅是指二者之间没有线性关系,所以不难推出 ...

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

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

  3. 【转】Pearson,Spearman,Kendall相关系数的具体分析

    测量相关程度的相关系数很多,各种参数的计算方法及特点各异. 连续变量的相关指标: 此时一般用积差相关系数,又称pearson相关系数来表示其相关性的大小,积差相关系数只适用于两变量呈线性相关时.其数值 ...

  4. 相关性系数及其python实现

    参考文献: 1.python 皮尔森相关系数 https://www.cnblogs.com/lxnz/p/7098954.html 2.统计学之三大相关性系数(pearson.spearman.ke ...

  5. 相似性 similarity | Pearson | Spearman | p-value | 相关性 correlation | 距离 distance | distance measure

    这几个概念不能混淆,估计大部分人都没有完全搞懂这几个概念. 看下这个,非常有用:Interpret the key results for Correlation euclidean | maximu ...

  6. 相关性系数缺点与证明 k阶矩

    相关性系数 https://baike.baidu.com/item/相关系数/3109424?fr=aladdin 缺点 需要指出的是,相关系数有一个明显的缺点,即它接近于1的程度与数据组数n相关, ...

  7. PHP 相关性系数计算

    相关系数公式 参考:https://baike.baidu.com/item/相关系数 PHP 实现代码 public static function calc($list) { $cv = []; ...

  8. Python数据分析与展示[第三周](pandas数据特征分析单元8)

    数据理解 基本统计 分布/累计统计 数据特征 数据挖掘 数据排序 操作索引的排序 .sort_index() 在指定轴上排序,默认升序 参数 axis=0 column ascending=True ...

  9. 数据分析R语言1

    数据分析R语言 无意中发现网上的一个数据分析R应用教程,看了几集感觉还不错,本文做一个学习笔记(知识点来源:视频内容+R实战+自己的理解),视频详细的信息请参考http://www.itao521.c ...

随机推荐

  1. Docker 建站小记

    一,前言 Docker 建站小记,我使用了四个镜像来搭建:nginx,certbot,mysql,gradle.欢迎访问:https://www.zzk0.top 这个网页是从 github 上找的个 ...

  2. Flask的配置文件加载两种方式

    配置文件 1 基于全局变量 2 基于类的方式 配置文件的加载需要将配合文件的相对路径添加到app.config.from_object("文件路径"),类的方式也是一样,需要将类的 ...

  3. CACTI优化-流量接口统计total输入和输出流量数据

    看图,没有优化前(没有显示流入和流出的总流量是多少): 优化后(有显示流入和流出总流量统计): 如何实现呢?本节就是处理的过程小结.第一步:登陆cacti管理平台进入控制台->模板->图形 ...

  4. (13)-Python3之--获取当前时间

    1.导入datetime模块 import datetime 2.获取当前日期和时间 import datetime now_time = datetime.datetime.now() print( ...

  5. (转载)微软数据挖掘算法:Microsoft 聚类分析算法(2)

    介绍: Microsoft 聚类分析算法是一种"分段"或"聚类分析"算法,它遍历数据集中的事例,以将它们分组到包含相似特征的分类中. 在浏览数据.标识数据中的异 ...

  6. editplus 5.0 破解

    先安装软件,安装步骤就不解释了,很傻瓜式的,一直下一步就行.   到了最重要的一步,请看仔细了!!!   在两个输入框中分别输入 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6 ...

  7. Apache Hudi 0.7.0版本重磅发布

    重点特性 1. Clustering 0.7.0版本中支持了对Hudi表数据进行Clustering(对数据按照数据特征进行聚簇,以便优化文件大小和数据布局),Clustering提供了更灵活地方式增 ...

  8. 一个sql盲注小工具 (Golang版)

    并发,二分法判断. 源码写的有点垃圾,有点乱,结果也存在一些缺失. 记录: sql:select distinct 中的distinct选项,这是只会获取你表中不重复数据,是表中,而不是你一次sql执 ...

  9. MongoTemplate聚合(一)$lookup

    mongodb   最近入职了新的公司,新公司统一使用的mongodb,es等非关系型数据库.以前对es有一些了解,其实就是灵活的文档类型结构,不受限于关系型数据库的那种字段唯一确定的"死板 ...

  10. Mysql,Oracle与Java字段类型映射关系

    Mysql,Oracle与Java字段类型映射关系 参考相关博文 MySQL/Oracle字段类型 Java字段类型 最大长度 BIT java.lang.Boolean 1 BLOB java.la ...