協方差矩陣的計算及意義

聲明:博文轉自https://blog.csdn.net/mr_hhh/article/details/78490576

一、首先看一個比較簡潔明瞭的協方差計算介紹:

1. 協方差定義
X、Y 是兩個隨機變量,X、Y 的協方差 cov(X, Y) 定義爲:

其中,

2. 協方差矩陣定義
矩陣中的數據按行排列與按列排列求出的協方差矩陣是不同的,這裏默認數據是按行排列。即每一行是一個observation(or sample),那麼每一列就是一個隨機變量。

協方差矩陣:

協方差矩陣的維度等於隨機變量的個數,即每一個 observation 的維度。在某些場合前邊也會出現 1 / m,而不是 1 / (m - 1).

3. 求解協方差矩陣的步驟
舉個例子,矩陣 X 按行排列:


1. 求每個維度的平均值

2. 將 X 的每一列減去平均值

其中:


3. 計算協方差矩陣


--------------------- 
作者:Rise_1024 
來源:CSDN 
原文:https://blog.csdn.net/mr_hhh/article/details/78490576 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

二、再來看一下協方差矩陣的意義:

協方差代表的意義是什麼? 

在概率論中,兩個隨機變量 X 與 Y 之間相互關係,大致有下列3種情況:

 

 

情況一,如上, 當 X, Y 的聯合分佈像上圖那樣時,我們可以看出,大致上有: X 越大  Y 也越大, X 越小  Y 也越小,這種情況,我們稱爲“正相關”。

 

情況二, 如上圖, 當X, Y 的聯合分佈像上圖那樣時,我們可以看出,大致上有:X 越大Y 反而越小,X 越小 Y 反而越大,這種情況,我們稱爲“負相關”。

情況三,如上圖, 當X, Y  的聯合分佈像上圖那樣時,我們可以看出:既不是X  越大Y 也越大,也不是 X 越大 Y 反而越小,這種情況我們稱爲“不相關”。

 

 

怎樣將這3種相關情況,用一個簡單的數字表達出來呢?

在圖中的區域(1)中,有 X>EX ,Y-EY>0 ,所以(X-EX)(Y-EY)>0;

在圖中的區域(2)中,有 X<EX ,Y-EY>0 ,所以(X-EX)(Y-EY)<0;

在圖中的區域(3)中,有 X<EX ,Y-EY<0 ,所以(X-EX)(Y-EY)>0;

在圖中的區域(4)中,有 X>EX ,Y-EY<0 ,所以(X-EX)(Y-EY)<0。

當X 正相關時,它們的分佈大部分在區域(1)和(3)中,小部分在區域(2)和(4)中,所以平均來說,有E(X-EX)(Y-EY)>0 

當 X與 Y負相關時,它們的分佈大部分在區域(2)和(4)中,小部分在區域(1)和(3)中,所以平均來說,有(X-EX)(Y-EY)<0 

當 X與 Y不相關時,它們在區域(1)和(3)中的分佈,與在區域(2)和(4)中的分佈幾乎一樣多,所以平均來說,有(X-EX)(Y-EY)=0 

所以,我們可以定義一個表示X, Y 相互關係的數字特徵,也就是協方差

cov(X, Y) = E(X-EX)(Y-EY)

當 cov(X, Y)>0時,表明 X正相關

當 cov(X, Y)<0時,表明XY負相關;

當 cov(X, Y)=0時,表明XY不相關。

這就是協方差的意義。

 

三、此部分進行更系統的說明:

聲明:博文轉自 https://blog.csdn.net/ybdesire/article/details/6270328

協方差的定義

對於一般的分佈,直接代入E(X)之類的就可以計算出來了,但真給你一個具體數值的分佈,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裏用一個例子說明協方差矩陣是怎麼計算出來的吧。

記住,X、Y是一個列向量,它表示了每種情況下每個樣本可能出現的數。比如給定

則X表示x軸可能出現的數,Y表示y軸可能出現的。注意這裏是關鍵,給定了4個樣本,每個樣本都是二維的,所以只可能有X和Y兩種維度。所以

用中文來描述,就是:

協方差(i,j)=(第i列的所有元素-第i列的均值)*(第j列的所有元素-第j列的均值)

這裏只有X,Y兩列,所以得到的協方差矩陣是2x2的矩陣,下面分別求出每一個元素:

        

所以,按照定義,給定的4個二維樣本的協方差矩陣爲:

用matlab計算這個例子

z=[1,2;3,6;4,2;5,2]

cov(z)

ans =

    2.9167   -0.3333

   -0.3333    4.0000

可以看出,matlab計算協方差過程中還將元素統一縮小了3倍。所以,協方差的matlab計算公式爲:

    協方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(樣本數-1)

       下面在給出一個4維3樣本的實例,注意4維樣本與符號X,Y就沒有關係了,X,Y表示兩維的,4維就直接套用計算公式,不用X,Y那麼具有迷惑性的表達了。

        

(3)與matlab計算驗證

                     Z=[1 2 3 4;3 4 1 2;2 3 1 4]

                     cov(Z)

                     ans =

                          1.0000    1.0000   -1.0000   -1.0000

                          1.0000    1.0000   -1.0000   -1.0000

                         -1.0000   -1.0000    1.3333    0.6667

                          -1.0000   -1.0000    0.6667    1.3333

       可知該計算方法是正確的。我們還可以看出,協方差矩陣都是方陣,它的維度與樣本維度有關(相等)。參考2中還給出了計算協方差矩陣的源代碼,非常簡潔易懂,在此感謝一下!

 

參考:

[1] http://en.wikipedia.org/wiki/Covariance_matrix

[2] http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html
--------------------- 
作者:ybdesire 
來源:CSDN 
原文:https://blog.csdn.net/ybdesire/article/details/6270328 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章