閱讀本文需要具備一定的線性代數基礎,通過本文,你將對協方差矩陣有全面的理解。
定義
n個隨機向量:
X=(X1,X2,...,Xn)T
兩個隨機向量的協方差:
cov[Xi,Xj]=E[(Xi−E[Xi])(Xj−E[Xj])]
由n*n個協方差組成的協方差矩陣
cov[X,X]=⎣⎢⎢⎢⎡cov[X1,X1]cov[X2,X1]⋮cov[Xn,X1]cov[X1,X2]cov[X2,X2]⋮cov[Xn,X2]⋯⋯⋱⋯cov[X1,Xn]cov[X2,Xn]⋮cov[Xn,Xn]⎦⎥⎥⎥⎤
直觀理解
- 協方差表示兩個隨機變量之間的線性相關性
- 協方差矩陣中的每個元素代表了兩個隨機變量之間的協方差
- 協方差矩陣表示一組隨機變量之間的兩兩線性相關性
例子
圖片和示例來源(點擊進入圖片來源)
有二維隨機變量x和y,簡便期間,我們對x和y做了去均值處理(xˉ=yˉ=0),所以x和y之間的協方差:cov[x,y]=E[(x−xˉ)(y−yˉ)]=E[x⋅y]
如果x和y的聯合分佈多分佈在一三象限,x⋅y多爲正數,則協方差爲正,x和y正相關。
如果x和y的聯合分佈多分佈在二四象限,x⋅y多爲負數,則協方差爲負,x和y負相關。
如果x和y的幾乎均勻地分散在所有象限中,則x⋅y有正有負,均值接近於0,說明x和y之間沒有相關性(只是說沒有線性相關)。
線性相關與非線性相關
若兩個向量的協方差爲0,則兩個向量不具備線性相關性,但它們仍然可能不獨立,因爲可能存在非線性的相關性。
具體的,協方差爲0但不獨立的原因在於:隨機向量x和隨機向量y之間的關係沒有一階分量,只有二階或高階分量(關於一階分量、二級分量等詳見泰勒公式)。
舉個例子(來自知乎匿名用戶):對於隨機變量x和隨機變量y,有x2+y2=1,其幾何關係如下圖:
性質
協方差矩陣是半正定矩陣
半正定矩陣的定義:
設A是實對稱矩陣。如果對任意的實非零列向量x有xTAx≥0,就稱A爲半正定矩陣。
半正定矩陣的性質:
- 半正定矩陣的行列式是非負的
- 半正定矩陣的特徵值都是非負的
- …
延伸:
實對稱矩陣一定是半正定矩陣
證明:協方差矩陣是半正定的
對任意向量y:
yTΣy=yTE[(X−μ)(X−μ)T]y =E[yT(X−μ)(X−μ)Ty] =E[((X−μ)Ty)T((x−μ)Ty)] =E[∣∣(X−μ)Ty∣∣2]≥0
正定矩陣的定義:
A是n階方陣,如果對任何非零向量x,都有xTAx>0,其中xT 表示x的轉置,就稱A正定矩陣
正定矩陣的性質:
- 正定矩陣的行列式恆爲正
- 正定矩陣的特徵值均爲正
- …
協方差矩陣是實對稱矩陣
實對稱矩陣的性質:
- 實對稱矩陣的不同特徵值對應的特徵向量時正交的
- 實對稱矩陣的特徵值是實數,特徵向量是實向量
- 實對稱矩陣必可對角化,且其相似對角矩陣的對角線元素爲n個特徵值
實對稱矩陣的對角化:
P−1AP=P−1P∧=∧
其中對角矩陣∧的對角元素爲矩陣A的n個特徵值(n個特徵值中可能重複的),P由矩陣A的特徵向量組成。
與其他統計量的關係
與協方差的關係:
- 協方差矩陣的第i行第j列的元素是第i個隨機向量和第j個隨機向量之間的協方差
- 從協方差到協方差矩陣是從標量隨機變量到高維隨機向量的推廣
與相關係數矩陣的關係:
相關係數矩陣爲corr(X)
corr(X)=(diag(cov(XX)))−21cov(XX)(diag(cov(XX)))−21
延伸:PCA中對協方差矩陣的應用
詳見《圖文並茂的PCA教程》
Python實戰
import numpy as np
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([9, 8, 7, 6, 5, 4, 3, 2, 1])
Sigma = np.cov(x, y)
print(Sigma)
'''輸出:
[[ 7.5 -7.5]
[-7.5 7.5]]
'''