1. 程式人生 > >協方差、協方差矩陣的數學概念及演算法計算

協方差、協方差矩陣的數學概念及演算法計算

在講解協方差之前,我們先一起回憶一下樣本的均值、方差、標準差的定義。

方差,協方差和協方差矩陣

1、概念

方差(Variance)是度量一組資料的分散程度。方差是各個樣本與樣本均值的差的平方和的均值: 


協方差(Covariance)是度量兩個變數的變動的同步程度,也就是度量兩個變數線性相關性程度。如果兩個變數的協方差為0,則統計學上認為二者線性無關。注意兩個無關的變數並非完全獨立,只是沒有線性相關性而已。計算公式如下: 

如果協方差大於0表示一個變數增大是另一個變數也會增大,即正相關,協方差小於0表示一個變數增大是另一個變數會減小,即負相關。 
協方差矩陣(Covariance matrix)由資料集中兩兩變數的協方差組成。

矩陣的第(i,j)(i,j)個元素是資料集中第ii和第jj個元素的協方差。例如,三維資料的協方差矩陣如下所示: 

2、練習

計算下表資料的協方差矩陣:

 

Python程式碼如下:

可以由python中的numpy包計算均值和協方差:

import numpy as np
X = [[2, 0, -1.4],
    [2.2, 0.2, -1.5],
    [2.4, 0.1, -1],
    [1.9, 0, -1.2]]
print(np.mean(X,axis=0))
print(np.cov(np.array(X).T))

計算結果如下: