上一篇通过公式自己写了一个计算两组数据的皮尔逊积矩相关系数(Pearson's r)的方法,但np已经提供了一个用于计算皮尔逊积矩相关系数(Pearson's r)的方法 np.corrcoef() :

a = pd.Series([1,2,3,4,5,6,7,8,9,10])
b = pd.Series([2,4,1,5,1,3,6,2,7,0])
c = pd.Series([0,3,2,1,4,7,1,9,6,2])
x = np.vstack((a,b,c))
r = np.corrcoef(x)
print(r)
[[1.         0.10233683 0.47840854]
[0.10233683 1. 0.0242104 ]
[0.47840854 0.0242104 1. ]]

需要注意的是, np.corrcoef() 接受的参数是一个矩阵,返回的结果也是一个矩阵

以上面的代码为例: a,b,c 分别为第 0,1,2 组数组,返回的矩阵结果 r[i][j] 分别为第 i 组数据和第 j 组数据的皮尔逊积矩相关系数:

r[0][0] 计算的是第 [0] 组数组和第 [0] 组数据的相关系数,也就是 a 和 a,结果当然是1.

r[0][1] 计算的是第 [0] 组数组和第 [1] 组数据的相关系数,也就是 a和 b,结果是0.10233683

r[2][0] 计算的是第 [2] 组数组和第 [0] 组数据的相关系数,也就是 c和 a,结果是0.47840854

04-26 19:46