我們都知道普遍來講身高越高的人體重越重,身高與體重彼此相關,且是呈現正相關。既然彼此相關,有沒有一個測量標準能夠告訴我們 它們有多相關? 我們不僅想知道彼此是正相關還負相關,還想要知道這個相關的強度。
共變異數及相關係數
共變異數及相關係數(Covariance and Correlation)就是很好的測量標準。
當我們想要探討兩個變數之間的關係時,一個很常見的手法就是去計算兩變數(身高和體重)之間的共變異數及相關係數。藉由共變異數及相關係數可以看出變數與變數之間的線性關係的強度。
但比起共變異數, 相關係數是一個更熱門的統計量 。其原因在於,雖然共變異數及相關係數都是代表兩變數之間線性關係強弱的量,但相關係數有經過標準化的轉化,使得不同相關係數之間有相同的單位,而共變異數則無這一特性。
這代表不同變數之間的相關係數是可以互相比較的,當一組變數的相關係數為0.8,那這組變數的線性相關就比另一組相關係數只有0.7的變數來的強。
但共變異數就沒辦法這樣比較,一組變數的共變異數是15,另一組變數的共變異數為8,這不意味著共變異數為15的那組變數其線性關係必然比另一組共變異數為8的變數強,因為我們並 不知道兩組共變異數的單位為何 。
Julia程式碼
using DataFrames, CSV, Statistics
# 匯入資料
data = CSV.read(".../temperatures.csv", copycols=true)
# 定義brisT為資料中Brisbane變數的數值
brisT = data.Brisbane
# 定義gcT為資料中GoldCoast變數的數值
gcT = data.GoldCoast
# 計算標準差
sigB = std(brisT)
sigG = std(gcT)
# 共變異數
covBG = cov(brisT, gcT)
# 相關係數
corBG = cor(brisT, gcT)
# 組成共變異數矩陣
covMat = [sigB^2 covBG
covBG sigG^2]
print(covBG, corBG, covMat)
Output
13.0
1.0
[16.0 13.0;
13.0 12.0]