使用python一步完成相關係數計算(correlation coefficient)

千行百行發表於2021-01-01

程式碼如下:

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

相關文章