np.corrcoef
的作用
计算 Pearson 乘积矩相关系数。它可以用来分析给定数据集中各个变量之间的线性相关程度,返回一个相关系数矩阵,相关系数矩阵中的值介于 -1 到 1 之间,包括 -1 和 1。这些值表明了变量之间的线性相关性及其方向。具体来说,正值接近 1 表示正向线性相关,负值接近 -1 表示负向线性相关,而值接近 0 则表示无线性相关性。
np.corrcoef
常用实例
计算二维矩阵的矩阵的相关系数,其中一个维度表示变量
variable
还有一个维度表示observation
表示观测值,default是row
表示variable
,column
表示observation
其实也比较好理解举个例子 矩阵[[1,2,3], [4,5,6], [7,8,9]]
,[1,2,3]
,[4,5,6]
,[7,8,9]
表示三个随机变量而这三个随机变量本身也是一个向量,该向量表示该随机标量的观测值即observatin
1. 计算矩阵的皮尔逊系数(不带其他参数的)
使用
np.corrcoef(data)
,data
是一个矩阵,使用默认的row
表示variable
,column
表示observation
import numpy as np
rng = np.random.default_rng(10)
data = rng.random((3,4))
print("below is data:")
print(data)
res = np.corrcoef(data)
print("------------------------------------------------")
print("below is the res of np.corrcoef(data):")
print(res)
结果如下图
2. rowvar
设置为false
来改变默认计算规则来
rowvar
设置为false
后,row
表示observation
,column
表示variable
import numpy as np
rng = np.random.default_rng(10)
data = rng.random((3,4))
print("below is data:")
print(data)
res = np.corrcoef(data, rowvar=False)
print("------------------------------------------------")
print("below is the res of np.corrcoef(data):")
print(res)
结果如下图
3. np.corrcoef(data1, data2)
这个其实等效于将data1跟data2在第一个维度上结合后计算皮尔逊相关系数的结果
import numpy as np
a = np.array(([[0.77395605, 0.43887844, 0.85859792],
[0.69736803, 0.09417735, 0.97562235],
[0.7611397 , 0.78606431, 0.12811363]]))
b = np.array(([[0.45038594, 0.37079802, 0.92676499],
[0.64386512, 0.82276161, 0.4434142 ],
[0.22723872, 0.55458479, 0.06381726]]))
merged_array = np.concatenate((a,b), axis = 0)
res1 = np.corrcoef(a)
res2 = np.corrcoef(a, b)
res3 = np.corrcoef(merged_array)
print("The res of the np.corroef(a) is: \n {}".format(res1))
print("The res2 equal to res3 is {}".format(np.array_equal(res2, res3)))
结果如下图