重溫矩陣(V) 主成份分析

 

 

 圖片圖片 

                         圖 這是一個簡單的主成分解釋(經協方差驗證,這兩種分佈是等效的)

 

問與答所言,之所以寫重溫矩陣,是對以前做一個總結,對於高等數學的一些思想做一個總結和概括,至於效果怎樣,這裏不妨以一個小的例子來說明:齊民友先生是一名數學大家,有一部書很值得一讀:《重溫微積分》,先生功力深厚,自己嘗試閱讀,但是苦於自己知識不紮實,讀起來十分的吃力,而且自己沒有學過現代分析的一些相關知識,所以舉步維艱,最終束之高閣。不過書確實給了我深刻的印象,可以說,《重溫矩陣》是借用重溫之名的一種隨筆式記錄。

年初在家,無意翻出那本書,決定認真的閱讀一下,結果我驚奇的發現,若不論成書的規模,《重溫矩陣》和《重溫微積分》有着很多的共通點,數學中的一些基本思想和概念都是相通的,從矩陣和微積分爲入口都可以說出很多數學上共通的思想,如 變換中不變,正交,分解與組合,譜等,同樣還有在物理意義上的訴求都有相似。

舉個例子無非說明,數學各個分支的一致和統一,從一個數學概念出發往往都可以管窺整個學科的思想。

回到主題,我本來的打算是想將矩陣中其他的東西加進來進行敘述,如我曾設想寫矩陣分解,不過實在功力有限,就作罷了。但是一直耿耿於懷,畢竟找不到一個合適的主題完結《重溫矩陣》,徹底的對本科數學做個緬懷。很幸運,在讀論文中,我找到了突破口,也就是主成分分析,如人所言,這是線性代數最爲著名的應用之一。我在使用的時候也發現,主成分分析驚人的使用了矩陣中的諸多性質與運算,如特徵值與特徵向量,正交,分解等等,恰好的承接以前的所學。那麼開始吧!

主成分分析,顧名思義,自然是從數據中提取出主要的成分出來,這種技術用途廣泛,如多元統計、統計學習、圖像識別等等。同時也常用與數據的降維,這一步往往是聚類分析的預處理操作。當然我的講法可能口語化,可以參照《實用統計分析》一書的說法:

主成分分析所關心的問題,是通過一組變量的幾個線性組合來解釋這組變量的方差-協方差結構。它的一般目的是:(1)數據的壓縮,(2)數據的解釋(該書將方差和協方差構成的矩陣稱爲方差-協方差矩陣,我們統稱爲協方差矩陣)

言簡意賅,直達本質。這裏包含了重要的概念:協方差,所以首要的,我們先考慮協方差的問題。下面就是兩個變量的協方差的計算公式:

圖片

協方差矩陣(這裏我們以協方差矩陣爲研究的基本單位)爲方差的推廣,他是一個方陣,其對角元素是各個變量的方差,那麼非對角元素是什麼呢?就是相應兩個變量的協方差。

衆所周知,方差是衡量變量變動程度的變量,在多個變量的情況下,如當變量是獨立的,也即他們沒有關係,那麼我們的協方差矩陣即退化成一個對角陣。如當其變量之間存在相關性,如同時增加或減小,抑或一個增加一個減小,都將使得協方差的計算公式偵測到這種協變的規律,相應的對與同向變化的位置的元素值則爲正,反之爲負,表示他們稱相反的變化關係。而且如果如變量的相關性越強其相應位置元素的模值就越大。

如我們舉個例子,我們觀察兩個獨立的正態分佈的協方差(MATLAB):

X = randn(100,1);Y = randn(100,1);cov([X,Y])

ans =    1.2468   - 0.1944

           -0.1944    0.7934

 

我們發現其非對角線的元素相對非常的小,不過這並不明顯,這是因爲對於少量的樣本無法代表整個宏觀的規律,如果我們加大樣本量就會發現象徵相關性的非對角元素的值會愈來愈接近零:

X = randn(100000,1);Y = randn(100000,1);cov([X,Y])

 

ans =    0.9978   -0.0010

        -0.0010    1.0002

現在我們的樣本數爲10萬,可以看到其變量的方差接近於標準正態分佈的1,而非對角元接近於0。

上述考慮的是不相關性,現在我們考慮相關性,如設Y=2*X,則有:

X = randn(100000,1);Y = 2*X;cov([X,Y])

ans = 0.9995    1.9990

1.9990    3.9980

如設Y = 3*X,則有:

X = randn(100000,1);Y = 3*X;cov([X,Y])

ans = 0.9948    2.9843

2.9843              8.9529

其非對角元素恰好衡量了X與Y的比例關係,然而,這只是簡單的線性關係,我們測試一下,非線性關係:Y=X^2,觀察是否協方差計算公式能夠偵測到這種關係:

X = randn(100000,1);Y = X.^2;cov([X,Y])

ans =  1.0082    0.0130

0.130                  2.0218

我們發現,協方差陣並不能偵測到這種非線性關係,引用wiki的話:

相關性爲0(因而協方差也爲0)的兩個隨機變量又被稱爲是不相關的,或者更準確地說叫作「線性無關」、「線性不相關」,這僅僅表明X Y 兩隨機變量之間沒有線性相關性,並非表示它們之間一定沒有任何內在的(非線性)函數關係,和前面所說的「X、Y二者並不一定是統計獨立的」說法一致。

總結以上,即若兩個變量是獨立的,則其協方差爲0;這個命題的逆命題則不成立。

 

爲什麼協方差陣只能檢測到變量間的線性關係呢?在一番思考後,我覺得用矩陣與線性變換的關係表述比較合適。如果我們考慮協方差陣對應一個將原先不相關的變量變得線性相關的線性變換的話,一切就清楚了。回顧第一節內容,因爲究其本質矩陣對應的就是線性變換。

 

(哦不!想要達到嚴謹的敘述的話,我發現我舉步維艱,連說的每一句話都要思考,這嚴重妨礙我思考的進行,請大家原諒,我現在準備捨棄嚴謹性,而自由表達自己的思路吧!)

 

雖然,教科書上不書寫協方差矩陣是一個對稱矩陣(首先他必須是方陣);那麼我們利用以前所說的譜分解,很簡單的將協方差陣做成一個如下的分解式:

圖片

k爲協方差矩陣的特徵值數目,而e1..k 就是新的基,從幾何上說就是新的軸。關於這個奇怪的分解式,其實如從幾何上就可以清晰的理解,我們試想一下,對於一個矢量,其與上述的協方差陣C作用,必然是其與各個獨立的正交基的內積的線性組合,更近一步的說,一個矢量是其在各個軸上的投影的組合。而投影是通過內積完成的,即矢量A有:

圖片

我們知道內積作爲一種將兩個矢量轉化爲一個標量的函數,括號裏的結果是一個標量,最終的效果,即是其在各個基上的座標值。

如此我們順便提及一下,投影矩陣:

假若我們想將一個矢量投影到一組新的座標系中(其實就是重新選定一組基),儘管這組基不是正交的(爲了方便說明我們設爲ab作爲新的規範基,當然這就是一個二維空間了,以下均建立在二維的例子上),但是線性無關的,於是我們在教科書上發現如下的操作(P是一個投影矩陣):

圖片

其實這個道理和以上是相同的,我們將這個操作分解爲:

圖片

則對其意義理解的就深刻了。這樣看來投影似乎分爲兩個步驟,一個是分別計算投影值,然後將其疊加起來。如果要將數據降維投影在子空間上,那麼我們的方法仍有效麼?答案是肯定的。

現在我們回顧以前的內容,投影無非也是一種線性變換,那麼他也將必然有其特徵向量,也就是說,總有一些矢量在投影前後,其方向不變,而同時我們知道,如果對於ab是線性無關的,那麼對於矩陣[a,b]其必然是滿秩的,而對於圖片顯然由可以通過簡單的證明,P是滿秩的

即觀察我們的投影陣P,對其進行特徵值分解(也就是譜分解)有:

圖片