相關與共變異數矩陣之間的關係
在本課前面的內容中,你用 .cov() 取得共變異數矩陣,並用 .corr() 取得相關係數矩陣。在模擬時,兩者很容易被混淆而用錯。讓我們來釐清!
相關係數矩陣是「標準化」後的共變異數矩陣,其中的相關係數介於 0 到 1 之間。
\(cov(x,y) = corr(x,y) \times std(x) \times std(y)\)
上式告訴我們,$cov(x,y)$(共變異數)可以用相關係數 \(corr(x,y)\) 乘以 \(x\) 的標準差 $std(x)$,再乘以 \(y\) 的標準差 \(std(y)\) 來計算。你將在這個練習中驗證這個關係!
糖尿病資料集已載入為 DataFrame dia,而且已為你匯入 pandas 為 pd 與 numpy 為 np。
本練習屬於課程
Python 的 Monte Carlo 模擬
練習說明
- 計算
dia[["bmi", "tc"]]的共變異數矩陣,並將結果存成cov_dia2。 - 計算
dia[["bmi", "tc"]]的相關係數矩陣,並將結果存成corr_dia2。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Calculate the covariance matrix of bmi and tc
cov_dia2 = ____
# Calculate the correlation matrix of bmi and tc
corr_dia2 = ____
std_dia2 = dia[["bmi","tc"]].std()
print(f'Covariance of bmi and tc from covariance matrix :{cov_dia2.iloc[0,1]}')
print(f'Covariance of bmi and tc from correlation matrix :{corr_dia2.iloc[0,1] * std_dia2[0] * std_dia2[1]}')