Python数据挖掘-相关性-相关分析

numpy、pandas

相关系数计算

首先使用numpy.mean()方法求出均值,Xsd=numpy.std()方法求出标准差;

然后在通过(X-Xmean)/Xsd公式求出z分数;

最后通过numpy.sum(ZX*ZY)/len(X)

 1 import numpy
 2 
 3 X=[
 4    12.5, 15.3, 23.2, 26.4, 33.5, 
 5     34.4, 39.4, 45.2, 55.4, 60.9]
 6 Y=[
 7    21.2, 23.9, 32.9, 34.1, 42.5, 
 8     43.2, 49.0, 52.8, 59.4, 63.5]
 9     
10 #均值
11 Xmean=numpy.mean(X)
12 Ymean=numpy.mean(Y)
13 
14 #标准差
15 Xsd=numpy.std(X)
16 Ysd=numpy.std(Y)
17 
18 #z分数
19 ZX=(X-Xmean)/Xsd
20 ZY=(Y-Ymean)/Ysd
21 
22 #相关系数
23 r=numpy.sum(ZX*ZY)/len(X)

使用内置函数直接计算

1、使用numpy的内置方法:numpy.corrcoef(X,Y),X和Y 为两组数据

2、使用pandas的内置方法:首先构造一个数据框,需要分析的两组数据称为两列,然后使用data.corr()

1 #直接调用内置方法
2 numpy.corrcoef(X,Y)
3 
4 import pandas
5 data=pandas.DataFrame({
6     "x":X,
7     "y":Y})
8 data.corr()