spss如何进行pearson相关性分析,spss pearson相关性分析结果怎么看
皮尔逊检验系数与python实现
I .皮尔逊相关系数
皮尔逊相关系数是反映两个变量之间相似性的统计量。机器学习可以计算特征和类别之间的相似度,判断提取的特征和类别是正相关、负相关还是不相关。
皮尔逊系数在[-1,1]的范围内。值为负时,为负相关;当值为正时,为正相关。绝对值越大,正/负相关性越大。如果数据中没有重复值,并且两个变量完全单调相关,则spearman相关系数为1或-1。如果两个变量是独立的,相关系统为0,反之亦然。
人员相关系数有三种计算方法,如下式所示
这里x,y是两个特征的排列,是x,y的特征的平均值,在第一种形式的皮尔逊表示中,可以认为是两个随机变量导出的样本集向量之间夹角的余弦函数。
二。Python代码的实现
这里主要实现原来的人员格式代码。代码分为三个模块。第一个模块的功能是获得两个向量的平均值。第二个模块的功能是找出两个向量之间的皮尔逊系数,并返回皮尔逊系数。最后一个模块是找出所有特征和类的相似性。
[python]查看纯文本
#计算要素和类别的平均值
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 _均值,y _均值
[python]查看纯文本
人员系数的计算
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]查看纯文本
[python]查看纯文本
#计算每个特征的spearman系数并返回一个数组
Defcalcattribute(数据):
prr=[]
n,m=shape(dataset) #获取数据集的行数和列数
X=[0]*n#初始化特征X和类别Y向量
y=[0]*n
获取foriinrange(n) :#)类向量。
y[I]=数据集[i][m-1]
for range(M-1):#)获取每个特征的向量,计算皮尔逊系数并存储在列表中。
forkinrange(n):
x[k]=数据集[k][j]
PRR.append(calcspearman(x,y))
返回prr
三。示例演示
这里有1162*22个数据集。如下图所示,前21列代表特性,第22列代表类别。这个数据集是一个二元分类问题。
对于每个特性,调用上面的函数,得到如下图所示的每个特性的人员系数。基于得到的结果,特征选择有一定的依据~
我不干了。谢谢你。