淺談協方差矩陣

一、統計學的基本概念

統計學裏最基本的概念就是樣本的均值、方差、標準差。首先,我們給定一個含有n個樣本的集合,下面給出這些概念的公式描述:

均值:clip_image002

標準差:image

方差:image

均值描述的是樣本集合的中間點,它告訴我們的信息是有限的,而標準差給我們描述的是樣本集合的各個樣本點到均值的距離之平均。

以這兩個集合爲例,[0, 8, 12, 20]和[8, 9, 11, 12],兩個集合的均值都是10,但顯然兩個集合的差別是很大的,計算兩者的標準差,前者是8.3後者是1.8,顯然後者較爲集中,故其標準差小一些,標準差描述的就是這種“散佈度”。之所以除以n-1而不是n,是因爲這樣能使我們以較小的樣本集更好地逼近總體的標準差,即統計上所謂的“無偏估計”。而方差則僅僅是標準差的平方。

 

二、爲什麼需要協方差

標準差和方差一般是用來描述一維數據的,但現實生活中我們常常會遇到含有多維數據的數據集,最簡單的是大家上學時免不了要統計多個學科的考試成績。面對這樣的數據集,我們當然可以按照每一維獨立的計算其方差,但是通常我們還想了解更多,比如,一個男孩子的猥瑣程度跟他受女孩子的歡迎程度是否存在一些聯繫。協方差就是這樣一種用來度量兩個隨機變量關係的統計量,我們可以仿照方差的定義:

clip_image002[6]

來度量各個維度偏離其均值的程度,協方差可以這樣來定義:

clip_image002[8]

協方差的結果有什麼意義呢?如果結果爲正值,則說明兩者是正相關的(從協方差可以引出“相關係數”的定義),也就是說一個人越猥瑣越受女孩歡迎。如果結果爲負值, 就說明兩者是負相關,越猥瑣女孩子越討厭。如果爲0,則兩者之間沒有關係,猥瑣不猥瑣和女孩子喜不喜歡之間沒有關聯,就是統計上說的“相互獨立”。

從協方差的定義上我們也可以看出一些顯而易見的性質,如:

clip_image002[10]

clip_image002[12]

 

三、協方差矩陣

前面提到的猥瑣和受歡迎的問題是典型的二維問題,而協方差也只能處理二維問題,那維數多了自然就需要計算多個協方差,比如n維的數據集就需要計算clip_image002[16]個協方差,那自然而然我們會想到使用矩陣來組織這些數據。給出協方差矩陣的定義:

clip_image002[18]

這個定義還是很容易理解的,我們可以舉一個三維的例子,假設數據集有三個維度,則協方差矩陣爲:

clip_image002[20]

可見,協方差矩陣是一個對稱的矩陣,而且對角線是各個維度的方差。

 

四、Matlab協方差實戰

必須要明確一點,協方差矩陣計算的是不同維度之間的協方差,而不是不同樣本之間的。以下的演示將使用Matlab,爲了說明計算原理,不直接調用Matlab的cov函數:

首先,隨機生成一個10*3維的整數矩陣作爲樣本集,10爲樣本的個數,3爲樣本的維數。

wps_clip_image-15418

圖 1 使用Matlab生成樣本集

根據公式,計算協方差需要計算均值,前面特別強調了,協方差矩陣是計算不同維度之間的協方差,要時刻牢記這一點。樣本矩陣的每行是一個樣本,每列是一個維度,因此我們要按列計算均值。爲了描述方便,我們先將三個維度的數據分別賦值:

wps_clip_image-17278

圖 2 將三個維度的數據分別賦值

計算dim1與dim2,dim1與dim3,dim2與dim3的協方差:

wps_clip_image-19087

圖 3 計算三個協方差

協方差矩陣的對角線上的元素就是各個維度的方差,下面我們依次計算這些方差:

wps_clip_image-20207

圖 4 計算對角線上的方差

這樣,我們就得到了計算協方差矩陣所需要的所有數據,可以調用Matlab的cov函數直接得到協方差矩陣:

wps_clip_image-25729

圖 5 使用Matlab的cov函數直接計算樣本的協方差矩陣

計算的結果,和之前的數據填入矩陣後的結果完全相同。

 

五、總結

理解協方差矩陣的關鍵就在於牢記它的計算是不同維度之間的協方差,而不是不同樣本之間。拿到一個樣本矩陣,最先要明確的就是一行是一個樣本還是一個維度,心中明確整個計算過程就會順流而下,這麼一來就不會迷茫了。

 

 

原文地址:

http://pinkyjie.com/2010/08/31/covariance/

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