百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Personr,kendalltau,spearmanr 相关性系数的区别

haoteby 2025-04-09 16:14 19 浏览

在这之前先聊点基础的


方差



标准差

方差和标准差都用来描述数据的离散程度,越小说明数据越集中。

需要注意的是,标准差和方差的大小只和数据本身的距离有关,如果数值大,但是间距小,那么标准差就是小的,所以不要觉得数值大一定是标准差也会大


data1的间距大


数值不一致,但是间距是一致的

协方差与相关系数:

协方差是一个数字,协方差矩阵是矩阵,不要被协方差的名字吓到了

μx是x的均值

也可以写成如下,E就是期望,可以用平均值来代替

协方差的含义是反应两个变量的协同关系, 变化趋势是否一致,如果协方差为正数,代表是同方向变化,反之就是反方向变化。同时协方差的数值越大,说明两个变量同向程度也就越大。(有没有觉得这个和相关系数非常像)


相关系数

相关系数就是在协方差的基础上,除以了x和y的标准差,其实就相当于对协方差做了一个线性拉伸变换,就是协方差的归一化,是无量纲的。但是相关系数的好处就是范围限定在【-1,1】之间,越接近于1说明越相关。

也有的地方不写协方差和标准差,而是用x,均值这种东西,具体过程可以参考下面的例子


pearsonr相关系数

pearsonr相关系数的定义和传统的相关系数一模一样,python中的代码也是很简单

import numpy as np
>>> from scipy import stats
>>> x, y = [1, 2, 3, 4, 5, 6, 7], [10, 9, 2.5, 6, 4, 3, 2]
>>> res = stats.pearsonr(x, y)
>>> res
PearsonRResult(statistic=-0.828503883588428, pvalue=0.021280260007523286)

输入x矩阵,y矩阵,返回的结果包括相关系数和显著性P值,P值用来衡量是否具有显著相关性,这个案例中相关系数很高(虽然是负数),P小于0.05就说明显著负相关。

Spearman 秩阶相关系数

简单来说,personr相关系数是研究两个原始数据之间的相关性,Spearman 不是研究原始数据之间的相关性,而是基于两个变量的秩次来研究。说人话就是,比如研究血红蛋白含量与贫血的相关性,血红蛋白是连续的数值,比如100,99,98.5这些含量,但是贫血特征是不连续的,被分为阴性贫血,严重贫血,一般贫血这些概念。因此一个变量连续,一个变量离散,就需要将这两者都进行编秩,然后使用personr相关系数进行计算


import numpy as np
>>> # total collagen (mg/g dry weight of liver)
>>> x = np.array([7.1, 7.1, 7.2, 8.3, 9.4, 10.5, 11.4])
>>> # free proline (μ mole/g dry weight of liver)
>>> y = np.array([2.8, 2.9, 2.8, 2.6, 3.5, 4.6, 5.0])
>>> from scipy import stats
>>> res = stats.spearmanr(x, y)
>>> res.statistic
0.7000000000000001

代码和personr几乎一样,非常简单

kendalltau一致性检验

具体来说,kendalltau不应该算是相关系数了,而是所谓的一致性,也就是A增加,B也增加,这叫一致性,至于A增加了多少,B增加的是多还是少都不管他的事情了。

import numpy as np
>>> # total collagen (mg/g dry weight of liver)
>>> x = np.array([7.1, 7.1, 7.2, 8.3, 9.4, 10.5, 11.4])
>>> # free proline (μ mole/g dry weight of liver)
>>> y = np.array([2.8, 2.9, 2.8, 2.6, 3.5, 4.6, 5.0])
  
>>> from scipy import stats
>>> res = stats.kendalltau(x, y)
>>> res.statistic
0.5499999999999999

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...