三大相关系数:pearson, spearman, kendall

统计学中的三大相关性系数:pearson, spearman, kendall,他们反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到+1。

0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。

1. person correlation coefficient(皮尔森相关性系数)

皮尔逊相关系数通常用r或ρ表示,度量两变量X和Y之间相互关系(线性相关)

(1)公式

皮尔森相关性系数的值等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX, σY)。

(2)数据要求

a.正态分布

它是协方差与标准差的比值,并且在求皮尔森相关性系数以后,通常还会用t检验之类的方法来进行皮尔森相关性系数检验,而t检验是基于数据呈正态分布的假设的。

b.实验数据之间的差距不能太大

比如:研究人跑步的速度与心脏跳动的相关性,如果人突发心脏病,心跳为0(或者过快与过慢),那这时候我们会测到一个偏离正常值的心跳,如果我们把这个值也放进去进行相关性分析,它的存在会大大干扰计算的结果的。

(3)实例代码

import pandas as pd

import numpy as np

#原始数据

X1=pd.Series([1, 2, 3, 4, 5, 6])

Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])

X1.mean() #平均值# 3.5

Y1.mean() #2.4

X1.var() #方差#3.5

Y1.var() #2.9760000000000004

X1.std() #标准差不能为0# 1.8708286933869707

Y1.std() #标准差不能为0#1.725108692227826

X1.cov(Y1) #协方差#3.0600000000000005

X1.corr(Y1,method="pearson") #皮尔森相关性系数 #0.948136664010285

X1.cov(Y1)/(X1.std()*Y1.std()) #皮尔森相关性系数 # 0.948136664010285

2. spearman correlation coefficient(斯皮尔曼相关性系数)

斯皮尔曼相关性系数,通常也叫斯皮尔曼秩相关系数。“秩”,可以理解成就是一种顺序或者排序,那么它就是根据原始数据的排序位置进行求解

(1)公式

首先对两个变量(X, Y)的数据进行排序,然后记下排序以后的位置(X’, Y’),(X’, Y’)的值就称为秩次,秩次的差值就是上面公式中的di,n就是变量中数据的个数,最后带入公式就可求解结果。

(2)数据要求

因为是定序,所以我们不用管X和Y这两个变量具体的值到底差了多少,只需要算一下它们每个值所处的排列位置的差值,就可以求出相关性系数了

(3)实例代码

import pandas as pd

import numpy as np

#原始数据

X1=pd.Series([1, 2, 3, 4, 5, 6])

Y1=pd.Series([0.3, 0.9, 2.7, 2, 3.5, 5])

#处理数据删除Nan

x1=X1.dropna()

y1=Y1.dropna()

n=x1.count()

x1.index=np.arange(n)

y1.index=np.arange(n)

#分部计算

d=(x1.sort_values().index-y1.sort_values().index)**2

dd=d.to_series().sum()

p=1-n*dd/(n*(n**2-1))

#s.corr()函数计算

r=x1.corr(y1,method='spearman')

print(r,p) #0.942857142857143 0.9428571428571428

3. kendall correlation coefficient(肯德尔相关性系数)

肯德尔相关性系数,又称肯德尔秩相关系数,它也是一种秩相关系数,不过它所计算的对象是分类变量。

分类变量可以理解成有类别的变量,可以分为:

(1) 无序的,比如性别(男、女)、血型(A、B、O、AB);

(2) 有序的,比如肥胖等级(重度肥胖,中度肥胖、轻度肥胖、不肥胖)。

通常需要求相关性系数的都是有序分类变量。

(1)公式

R=(P-(n*(n-1)/2-P))/(n*(n-1)/2)=(4P/(n*(n-1)))-1

注:设有n个统计对象,每个对象有两个属性。将所有统计对象按属性1取值排列,不失一般性,设此时属性2取值的排列是乱序的。设P为两个属性值排列大小关系一致的统计对象对数

(2)数据要求

类别数据或者可以分类的数据

(3)实例代码

import pandas as pd

import numpy as np

#原始数据

x= pd.Series([3,1,2,2,1,3])

y= pd.Series([1,2,3,2,1,1])

r = x.corr(y,method="kendall") #-0.2611165

python求解典型相关系数_三大相关系数: pearson, spearman, kendall(python示例实现)...相关推荐

  1. 数据挖掘01-相关性分析及可视化【Pearson, Spearman, Kendall】

    数据挖掘01-相关性分析及可视化[Pearson, Spearman, Kendall] 简介 一.什么是相关性分析 二.常见的相关性分析方法 三.Pearson相关系数 使用pandas对数据做Pe ...

  2. 皮尔森(Pearson correlation coefficient)相关系数—统计学三大相关系数之一

    概述 皮尔森相关系数也称皮尔森积矩相关系数(Pearson product-moment correlation coefficient) ,是一种线性相关系数,是最常用的一种相关系数.记为r,用来反 ...

  3. python的顶级库_三大用于数据科学的顶级Python库

    Python有许多吸引力,如效率,代码可读性和速度,使其成为数据科学爱好者的首选编程语言.Python通常是希望升级其应用程序功能的数据科学家和机器学习专家的首选. 由于其广泛的用途,Python拥有 ...

  4. python求解混合整数规划_如何用python结合cplex求解混合整数规划问题

    展开全部 第一步:注册IBM id账号 第二步:下载相关系统的e69da5e6ba9062616964757a686964616f31333363396432CPLEX(windows/linux/m ...

  5. python实现推荐系统代码_推荐系统之矩阵分解及其Python代码实现

    有如下R(5,4)的打分矩阵:("-"表示用户没有打分) 其中打分矩阵R(n,m)是n行和m列,n表示user个数,m行表示item个数 那么,如何根据目前的矩阵R(5,4)如何对 ...

  6. 少儿学python真的有用吗_如何看待海淀妈妈们认为Python是儿童才学的低端编程?...

    海淀妈妈没说错啊~ 对于她们,python确实是儿童才学的低端编程. 儿童学编程,最重要的是易上手,当然要用代码看起来更简单的动态语言. 主流的动态语言里,ruby太骚,js太贱,php太浪,只有py ...

  7. 经典python项目源码_建议收藏,22个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  8. python迷你停车管理系统_建议收藏,22个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  9. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

最新文章

  1. The Life Cycle of a Servlet
  2. 重磅 | 2018年清华大学研究生新生大数据
  3. 用window.open在同一个新窗口中访问指定url【IE页面缓存问题】
  4. 刮奖的实现;(刮开上层图层蒙版,露出底部的视图)
  5. 解决wps与matlab不兼容的问题
  6. 访问数,每次访问页数,平均停留时间,跳出率
  7. 《随机过程》布朗运动理论中的两个反常问题
  8. [vue] vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?
  9. Sql Server 2005 分页
  10. 找第一个只出现一次的字符_leetcode哈希表之第一个只出现一次的字符
  11. 【Python】Python库之网络应用开发
  12. 技校计算机科技都学什么好,技校计算机都学什么?
  13. 洛谷 P2286 [HNOI2004]宠物收养场
  14. 分享思路:Python+Spark爬虫音乐推荐系统 音乐数据分析可视化 音乐推荐app 音乐网站 大数据毕业设计(app+web+爬虫+spark+可视化)
  15. java中级工程师所需的技能_中级Java开发工程师的工作职责描述
  16. 利用JAVA求定积分
  17. 厂级监控系统镜像服务器,厂级监控信息系统(SIS).PDF
  18. JavaScript中的eval函数
  19. 【前端应该掌握的一些知识点】
  20. 云直播SDK核心功能对比|腾讯云、阿里云、声网、即构等SDK厂商对比

热门文章

  1. 黑客攻击公司化:网络犯罪也有商业模式也有CEO
  2. 使用Monit监控进程与系统状态
  3. MYSQL命令行常用命令
  4. python批量从pdf中转换图片保存
  5. 用递归计算一个数字每一位相加的结果。_【每日编程196期】各位相加III
  6. java版微信调小i机器人接口说明书_小i机器人微信公众平台调用api
  7. 智能提示_文明放大镜·7 | 清新智能语音提示桩让你过马路除了看灯还可以听,赞...
  8. maxcompute操作_MaxCompute问答整理之9月
  9. PHP网站首页空白刷新就好了,部署好后网站一片空白,不显示内容
  10. 小猿圈python之python期末考试测试题(二)_小猿圈python之练习题