首页 > 编程知识 正文

spss如何做相关性分析,pearson相关系数解读

时间:2023-05-03 17:35:39 阅读:151360 作者:995

相关检验的Pearson系数和python的实现

一.皮尔森相关系数

皮尔森相关系数是反映两个变量之间相似度的统计量,机器学习可以计算特征和类别之间的相似度,判断提取的特征和类别是正相关、负相关还是无相关。

Pearson系数取值范围为[-1,1 ],值为负时为负相关,值为正时为正相关,绝对值越大,正/负相关程度越大。 如果数据中没有重复值,且两个变量完全单调相关,则spearman相关系数为1或-1。 如果两个变量独立,则相关系统为0,反之亦然

人员相关系数的计算方法有三种形式,如下式所示

在此,x,y是2个特征排列,是x,y的特征的平均值。 在第一种形式的Pearson表示中,可以认为是从两个随机变量中得出的样本集向量之间角度的cosine函数。

二. Python代码的实现

这里主要实现了最初的人员格式代码。 代码分为三个模块,第一个模块的功能是获取两个向量的平均值。 第二个模块的功能是求出两个向量之间的pearson系数,实现返回pearson系数; 最后一个模块是求出所有特征和类的相似度

[python]view plaincopy

#计算特征和班级的平均值

efcalcmean(x,y ) :

sum_x=sum(x )

sum_y=sum(y )

n=len(x )

x_mean=float(sum_x0.0 )/n

y_mean=float(sum_y0.0 )/n

returnx_mean,y_mean

[python]view plaincopy

人员系数的计算

defcalcpearson(x,y ) :

计算x_mean,y_mean=calcmean(x,y ) #x,y向量的平均值

n=len(x )

sumTop=0.0

sumBottom=0.0

x_pow=0.0

y_pow=0.0

foriinrange(n ) :

sumtop=(x[I]-x_mean ) (*(y[i]-y_mean ) ) (*(y[i]-y_mean ) ) )

foriinrange(n ) :

x_pow=math.pow(x[I]-x_mean,2 ) )。

foriinrange(n ) :

y_pow=math.pow(y[I]-y_mean,2 ) )。

sum bottom=math.sqrt (x _ pow * y _ pow ) )。

p=sumTop/sumBottom

returnp

[python]view plaincopy

[python]view plaincopy

#计算各特性的spearman系数,返回数组

defcalcattribute (数据) :

prr=[]

n,m=shape(dataset ) #获取数据集的行数和列数

x=[0]*n#初始化特征x和类别y向量

y=[0]*n

得到foriinrange(n ) :# )类向量

y[i]=dataSet[i][m-1]

forjinrange(m-1 ) :# )获得各个特征的向量,计算Pearson系数并存储在列表中

forkinrange(n ) :

x[k]=dataSet[k][j]

PRR.append(calcspearman(x,y ) )

返回prr

三.示例演示

这里有1162*22个数据集。 如下图所示,前21列表示特征,第22列表示类别。 这个数据集是二分类问题。

对于每个特征,调用以上函数,得到的每个特征的人员系数如下图所示。 基于得到的结果,对特征选择有一定的依据哦~

看完了谢谢

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。