使用python一步完成相关系数计算(correlation coefficient)

代码如下:

import numpy as np

# x是一个行向量
x = np.array([1, 3, 564, 675, 6567]).reshape(1, -1)

# y1、y2都是行向量
y1 = np.array([1, 3, 555555, 675, 6567]).reshape(1, -1)
y2 = 2*x+4

# 两个行向量拼接到一起,形成一个两行的矩阵
x_y1 = np.r_[x, y1]
x_y2 = np.r_[x, y2]

# 注意使用np.corrcoef求相关系数时
# 求取得到的是任意两行的相关系数构成的相关系数矩阵
# 所以一定要把想求的两个向量分别放在不同的行,而不是列
c_x_y1 = np.corrcoef(x_y1)[0, 1]
print(c_x_y1)

# 由于y2 = 2*x+4,相关系数c_x_y2必定等于1
c_x_y2 = np.corrcoef(x_y2)[0, 1]
print(c_x_y2)

输出结果为

-0.18724527057600632
1.0

see also:

  1. numpy官方:numpy.corrcoef
  2. numpy官方:numpy.cov

你可能感兴趣的:(python)