三大相关性分析之python

目录

1.简介

2.Pearson相关系数

算法详解

程序实现

3.Kendall相关系数

算法详解 

程序实现

4.Spearman相关系数

算法详解 

程序实现


1.简介

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。

常见的三种:Pearson相关系数,Kendall相关系数和Spearman相关系数。在这三大相关系数中,spearman和kendall属于等级相关系数亦称为“秩相关系数”,是反映等级相关程度的统计分析指标。最终选择哪种相关系数法,对比结果谁更符合预期效果。

2.Pearson相关系数

算法详解

按照大学的线性数学水平来理解, 它比较复杂一点,可以看做是两组数据的向量夹角的余弦。

常见Pearson有以下几种公式,以下三种公式皆等价

皮尔森相关系数是衡量线性关联性的程度,公式定义为:两个连续变量(X,Y)的pearson相关性系数P(x,y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX,σY)。系数的取值总是在-1到1之间,接近0的变量被成为无相关性,接近1或者-1被称为具有正向或者负向强相关性。

那么皮尔森适用的条件是什么呢?

  • 两个变量之间是线性关系,都是连续数据。

  • 两个变量的总体是正态分布,或接近正态的单峰分布。

  • 两个变量的观测值是成对的,每对观测值之间相互独立。

在满足这些条件后,接下来我们来看下程序,这三种相关系数均可用corr函数实现

①当X与Y是构成一个矩阵时,关于两者相关系数程序格式为

corr(X,Y,'type','Pearson')

②当X是由多个指标数据构成的矩阵时,关于指标间相关系数程序格式为

corr(X,'type','Pearson')

程序实现

数据如下:

代码如下:

#导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#导入数据
data=pd.read_excel(r'D:\桌面\xiangguan.xlsx')
# print(data)
#皮尔森相关系数
pearson=data.corr(method="pearson")
# print(pearson)
# data.corr(method="pearson")
#绘制热力图
sns.heatmap(pearson)
plt.show()

返回:

 

3.Kendall相关系数

        Kendall相关系数:是一个用来测量两个随机变量相关性的统计值,在一个肯德尔检验是一个无参数假设检验,它使用计算而得的相关系数去检验两个随机变量的统计依赖性。肯德尔相关系数的取值范围在-1到1之间,当τ为1时,表示两个随机变量拥有一致的等级相关性;当τ为-1时,表示两个随机变量拥有完全相反的等级相关性;当τ为0时,表示两个随机变量是相互独立的。

算法详解 

这里有三种公式计算肯德尔相关系数:

其中C表示XY中拥有一致性的元素对数(两个元素为一对);D表示XY中拥有不一致性的元素对数,N为元素个数。

注意:这一公式仅适用于集合X与Y中均不存在相同元素的情况(集合中各个元素唯一)

注意:这一公式适用于集合X或Y中存在相同元素的情况(当然,如果XY中均不存在相同的元素时,公式2便等同于公式1

其中,C表示XY中拥有一致性的元素对数(两个元素为一对);D表示XY中拥有不一致性的元素对数。

N1、N2分别是针对集合X、Y计算的,将X中的相同元素分别组合成小集合,Y同理,s、t表示集合X、Y中拥有的小集合数(例如X包含元素:12 3 4 3 3 2,那么这里得到的s则为2,因为只有2、3有相同元素),Ui表示第i个小集合所包含的元素数,Vi同理。

①当X与Y是构成一个矩阵时,关于两者相关系数程序格式为

corr(X,Y,'type','Kendall')

②当X是由多个指标数据构成的矩阵时,关于指标间相关系数程序格式为

corr(X,'type','Kendall')

程序实现

 数据如下:

代码如下:

#导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#导入数据
data=pd.read_excel(r'D:\桌面\xiangguan.xlsx')
#kendall相关系数
kendall=data.corr(method="kendall")
# print(kendall)
# data.corr(method="kendall")
#绘制热力图
sns.heatmap(kendall)
plt.show()

返回:

4.Spearman相关系数

        Spearman相关系数:Spearman等级相关系数又称秩相关系数。利用两变量的秩次大小作线性相关分析,Spearman等级相关系数用来估计两个变量X、Y之间的相关性,其中变量间的相关性可以使用单调函数来描述。如果两个变量取值的两个集合中均不存在相同的两个元素,那么,当其中一个变量可以表示为另一个变量的很好的单调函数时(即两个变量的变化趋势相同),两个变量之间的ρ可以达到+1(绝对正相关)或-1(绝对负相关)

算法详解 

Spearman相关系数可由以下两式计算

1、将集合x、y中的元素对应相减得到一个排行差分集合d,由排行差分集合d计算而得

2、由排行集合x、y计算而得(斯皮尔曼等级相关系数同时也被认为是经过排行的两个随即变量的皮尔逊相关系数,以下实际是计算x、y的皮尔逊相关系数)

以下是一个计算集合中元素排行的例子(仅适用于斯皮尔曼等级相关系数的计算)

这里需要注意:当变量的两个值相同时,它们的排行是通过对它们位置进行平均而得到的

适用范围:只需两个变量的观测值是成对的等级评定数据,或者是由连续变量观测数据转化得到的等级数据,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究

程序实现

 数据如下:

代码如下:

#导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#导入数据
data=pd.read_excel(r'D:\桌面\xiangguan.xlsx')
#Spearman相关系数
spearman=data.corr(method="spearman")
# print(spearman)
# data.corr(method="spearman")
#绘制热力图
sns.heatmap(spearman)
plt.show()

返回:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言实现http服务器_基于postman实现http接口测试过程解析_服务器其它

这篇文章主要介绍了基于postman实现http接口测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通…

组合赋权法之matlab

目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标正向化 3.3 数据范围标准化 3.4 计算主观权重 3.5 计算客观权重 3.6 计算组合权重 3.7 计算得分 …

组合赋权法之python

目录 1.简介 2.算法原理 2.1 指标正向化 2.2 数据标准化 2.3 计算主观权重 2.4 计算客观权重 2.5 计算组合权重 2.6 计算的得分 3.实例分析 3.1 读取数据 3.2 指标正向化 3.3 数据范围标准化 3.4 计算主观权重 3.5 计算客观权重 3.6 计算组合权重 3.7 计算得分…

蒙特卡罗模拟法 —— matlab

目录 1.简介 2.实例分析 2.1 模拟求近似圆周率 2.2 估算定积分 2.3 求解整数规划 1.简介 蒙特卡洛又称随机抽样或统计试验,就是产生随机变量,带入模型算的结果,寻优方面,只要模拟次数够多,最终是可以找到最优解或…

浏览器打开出现证书错误_2分钟轻松解决ie证书错误

我们日常在用IE上网的时候,可能会出现IE证书错误的提示,对于电脑小白来说会很痛苦,不妨跟小编一起学习,学会了下次就知道怎么解决了,下面就告诉大家,如何解决显示IE网页证书错误最基本的方法!其…

蒙特卡罗模拟法 —— python

目录 1.简介 2.实例分析 2.1 模拟求近似圆周率 2.2 估算定积分 2.3 求解整数规划 1.简介 蒙特卡洛又称随机抽样或统计试验,就是产生随机变量,带入模型算的结果,寻优方面,只要模拟次数够多,最终是可以找到最优解或…

win10推送_Win10推送更新升级Edge浏览器:用户发现电脑速度因此变慢

新Win10让电脑变慢?如果你有类似感觉,那并非首例。据外媒报道,不完全汇总发现,在打上Windows 10补丁KB4559309, KB4541301或者KB4541302(视Windows版本不同)后,部分用户报告了启动速度以及日常运行程序变慢的情况。上述…

java人民币读法转换

实现浮点数转换成人民币读法字符串 将浮点数转换成人民币读法字符串, 例如: 将1006.333转换为壹千零陆元叁角叁分。 整体解析: 将浮点数分成整数部分和小数部分,分开处理整数部分和小数部分。 小数部分的处理比较简单&#xff…

博弈论 —— matlab

目录 1.简介 2.算法原理 3.实例分析 1.各参数初始化 2.计算期望与实际期望 3.博弈过程 4.绘图 完整代码 1.简介 博弈论又被称为对策论(Game Theory)既是现代数学的一个新分支,也是运筹学的一个重要学科。 博弈论主要研究公式化了的激励结构间的相互作用。是研…

电脑有回声_电脑连接麦克风有回音怎么办?麦克风回声的解决方法

电脑插入麦克风后说话有回声怎么办?麦克风说话有回音该如何解决?下面给大家介绍电脑连接麦克风有回音的解决方法。解决方法:1、打开【控制面板】,找到并点击【硬件和声音】,如图所示:2、在【硬件和声音】窗…

线性规划 —— matlab

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法(least square method)求解: 4. 评估回归模型 四、regress线…

Java商品信息查询

使用一维数组和二维数组的相关知识,以及数组排序的多种算法来实现商品信息查询的功能。 假设在仓库系统中,每件商品都有 3 个库存信息,分别是入库量、出库量和当前库存量。定义一个一维数组来存储 5 件商品的名称,并定义一个二维…

openwrt dhcp 无法获取ip_电脑的 ip 是怎么来的呢?我又没有配置过

来源 | 苦逼的码农作者 | 帅地对于我们平时上网的电脑的 ip 是如何来的呢?一种简单的方法就是我们自己来配置了显然,这里有两种配置方式,一种是自动获取 ip 地址,一种是我们手动来设置,我相信大部分人都是通过自动获取…

线性回归 —— python

目录 一、基本概念 二、概念的数学形式表达 三、确定w和b 1.读取或输入数据 2.归一化、标准化 2.1 均值 2.2 归一化 2.3 标准化 3.求解w和b 1.直接解方程 2.最小二乘法(least square method)求解: 4. 评估回归模型 四、sklearn中…

审查元素找不到创建的元素_香奈儿除了珍珠,还有哪些你不知道的经典元素?答案在原文中找...

Chanel曾经说过:“没有珍珠的女人,不算是女人”珍珠是Coco永远的标志无论白天还是夜晚也无论她穿着运动服还是毛衣男装裤甚至在她人生最后的一段日子珍珠饰品都如影随形。BUT!你能相信?对珍珠如此看重的Coco竟然卖的大部分珍珠是人…

博弈论 —— python

目录 1.简介 2.算法原理 3.实例分析 1.各参数初始化 2.计算期望与实际期望 3.博弈过程 4.绘图 完整代码 1.简介 博弈论又被称为对策论(Game Theory)既是现代数学的一个新分支,也是运筹学的一个重要学科。 博弈论主要研究公式化了的激励结构间的相互作用。是研…

android应用程序 多少钱_关于APP开发你最想了解的事,开发一个APP多少钱?

当我们在进行APP开发,最关注的问题一定是APP开发的价格问题,而作为软件开发行业的从业人员,经常会遇到这样的情况:“别说这么多,你只要告诉我开发一个软件多少钱就行了”。郑州APP开发公司的确,无论我们买什…

mvc 扫描二维码跳转内部指定页面_开源神器:一个二维码,让文件传输不设限!...

大家好,我是小 G。今天给大家推荐一个在前不久火遍 GitHub 的开源项目:QRCP。从项目的命名你们应该就能大致猜测出来,这款神器的主要作用,就是能通过指定二维码,快速完成文件的传输功能。项目作者是来自意大利的一位小…

K-means聚类 —— matlab

目录 1.简介 2.算法原理 3.实例分析 3.1 读取数据 3.2 原理推导K均值过程 3.3 自带kmeans函数求解过程 完整代码 1.简介 聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为…

数据线给电脑联网是什么原理_物联网孵化的产物——条码扫描器

一、什么是物联网?物联网的概念由凯文阿什顿(Kevin Ashton)于1999年被提出,即Internet of Things(IOT),也称为Web of Things。根据阿什顿的想法,计算机最终能够在没有人工干预的情况下,自主产生及收集数据,…