从零开始的数模(二十二)相关性分析

本文介绍了Pearson、Kendall和Spearson相关系数的概念、原理及在Python和MATLAB中的实现方法。通过相关系数,可以衡量两个变量之间的线性或等级相关性,代码示例展示了如何读取Excel数据并计算这些系数,以及用热力图展示结果。
摘要由CSDN通过智能技术生成

目录

一、概念

1.1相关概念

1.2数据类型

二、Pearson相关系数 

2.1原理

2.2适应条件

​编辑 2.3python代码的实现

 2.4MATLAB代码实现

 三、Kendall相关系数

3.1概念

3.2原理

​编辑 3.3python的实现

3.4matlab实现

 四.Spearman相关系数

4.1概念

4.2原理

4.3python实现

 4.4基于matlab实现


一、概念

1.1相关概念

1.2数据类型

 1.3两变量的相关性分析

 

二、Pearson相关系数 

2.1原理

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


2.2适应条件

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

 2.3python代码的实现

数据如下

 

#导入相关库
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()

 

 2.4MATLAB代码实现

data = xlsread('D:\桌面\xiangguan.xlsx');
%相关性分析
%默认类型为Pearson系数
Pearson=corr(data','type','Pearson') %等效于xiangguan=corr(data,'Type','Pearson')

 三、Kendall相关系数

3.1概念

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

3.2原理

 3.3python的实现

#导入相关库
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()

3.4matlab实现

data = xlsread('D:\桌面\xiangguan.xlsx');
%相关性分析
%默认类型为Pearson系数
Kendall =corr(data','type','Kendall') %等效于xiangguan=corr(data,'Type','Kendall')

 四.Spearman相关系数

4.1概念

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

4.2原理

 

4.3python实现

#导入相关库
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()

 

 4.4基于matlab实现

data = xlsread('D:\桌面\xiangguan.xlsx');
%相关性分析
%默认类型为Pearson系数
Spearman=corr(data','type','Spearman') %等效于xiangguan=corr(data,'Type','Spearman')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烟雨平生9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值