PCA原理簡介
為什么要用PCA?
維基百科介紹:主成分分析(英語:Principal components analysis,PCA)是一種分析、簡化數(shù)據(jù)集的技術。主成分分析經常用于減少數(shù)據(jù)集的維數(shù),同時保持數(shù)據(jù)集中的對方差貢獻最大的特征。
說了和沒說一樣……我們還是通過一個簡單的案例引出PCA的作用吧。
如果我們在6個小鼠樣本中檢測一個基因Gene1的表達

我們很容易看出來,基因Gene1在小鼠1-3中表達比較相似,而在小鼠4-6中表達比較相似

如果同時檢測兩個基因

我們可以將不同小鼠樣本標記在二維坐標軸中,并且看出小鼠1-3的整體表達比較相似,而小鼠4-6的整體表達比較相似

將基因數(shù)目擴增到3個時候,我們依然可以通過三維坐標軸標記出不同樣本的分布

但是如果將基因數(shù)目增加到4個或4個以上時候,很難繼續(xù)增加坐標軸的維度來繪圖(思維空間已經超出一般人的認知了)。
所以我們可以通過PCA的降維方法來處理這種4維或者多維數(shù)據(jù),將其繪制為二維圖像來比較不同樣本之間的關系。
PCA原理
PCA是如果進行降維的呢?
PC1計算原理
首先我們只檢測6個不同小鼠的2個基因,那么我們可以分別計算出所有小鼠Gene1和Gene2的平均值(紅色叉號)。根據(jù)這些均值,可以獲得所有數(shù)據(jù)的中心(藍色叉號)。

然后我們將數(shù)據(jù)整體移動,數(shù)據(jù)的中心于原點重合。雖然所有的數(shù)據(jù)點都移動了,但是每個數(shù)據(jù)點的相對距離沒有改變,只是數(shù)據(jù)的中心變?yōu)樵c(0,0)。

接下來,我們會繪制一條通過原點的直線。這條直線可以360°旋轉,直至同數(shù)據(jù)匹配最佳。

那么如何判斷最佳匹配呢?這個標準是——
PCA將所有的數(shù)據(jù)點投射到這條直線上,并且計算這些數(shù)據(jù)點投射到直線上的距離(使這些距離最小)和投射點到原點的距離(使這些距離最大)

如何理解這兩個距離呢?
先看一個點的投射
這個數(shù)據(jù)點到原點的距離是不變的,記為a,其到直線的距離記為b,而投射點到原點的距離記為c。根據(jù)勾股定理
,如果直角邊b變大的話,那么直角邊就c會變小。
PS:很多其他資料介紹PCA原理時提到的最大方差理論和最小平方誤差理論都是基于這個道理的
實際上計算c會簡單一些,所以PCA一般是通過計算所有數(shù)據(jù)點到原點距離平方和sum()最大值來尋找最優(yōu)解。
如下圖所示,分別將這6個樣本的投射點到原點距離標記為d1,d2,...,d6,然后計算這些點的平方和,這些平方和也被稱為SS距離,即。

獲得SS最大值時的這條線,被稱為PC1。假設PC1這條線的斜率為0.25,這意味著每當我們在Gene1前進4個單位時,PC1上的數(shù)據(jù)點在Gene2上就增加1個單位。

這也意味著這幾個樣本在Gene1上更加分散,而在Gene2上分散程度較小。

根據(jù)雞尾酒配方來思考PC1,為生成PC1,我們加入了4份Gene1和1份Gene2,這也說明在描述數(shù)據(jù)的分散程度方面,Gene1更加重要。
在數(shù)學上,這種雞尾酒配方被稱為Gene1和Gene2的線性組合,或也可以說“PC1是幾個變量的線性組合”。
特征值、奇異值、特征向量和載荷分數(shù)
在PCA中,將SS稱為PC1的特征值(Eigenvalue);PC1特征值的平方被稱為PC1的奇異值(Singular Value)。
根據(jù)上面的假設,PC1的斜率為0.25,如果下圖的紅色箭頭是一個長度單位,那么它是有0.97個Gene1和0.242個Gene2構成,所以被稱為特征向量(Eigenvector)或奇異向量(Singular vector)。
而每個基因的比例,被稱為PC1的載荷分數(shù)(loading score)
PC2計算原理
在二維坐標中,PC2是一條通過原點,并且與PC1垂直的直線。
很容易計算出PC2的斜率為-4,那么PC2就是由-0.242個Gene1和0.97個Gene2構成了。

同時,我們也可以計算出PC2的特征值。

繪制PCA圖
旋轉坐標軸,將PC1水平,PC2垂直。黑色叉表示原始的樣本6,那么在新的坐標系中,Sample6的分布如下圖所示。

變異度
各個主成分的變異度(Variation)計算,方法是SS除以樣本減1。
假如上面那個案例中PC1變異度為15,PC2的變異度為3,那么總變異度為18.
因此PC1在總變異中所占的比值為83%,PC2占的總變異為17%。

多維數(shù)據(jù)
如果我們有3個基因,根據(jù)前面描述的步驟,分別找出PC1、PC2(垂直于PC1)和PC3(同時垂直于PC1和PC2),
理論上講,主成分的數(shù)目等于變量數(shù)目或樣本數(shù)目二者較小的那個(后面會有擴展)
同時也可以計算出各個主成分的變異度。

在上面的案例中,只使用PC1和PC2可以解釋94%的變異度,所以我們只保留PC1和PC2最終繪圖

這樣,我們就獲得了最終降維之后的結果。

擴展
標準化數(shù)據(jù)
在進行PCA降維之前,需要確保所有數(shù)據(jù)處于同一標準下。
例如下面這組數(shù)據(jù),Math分數(shù)是按照百分制統(tǒng)計,而Reading分數(shù)是按照十分制統(tǒng)計。

那么我們在計算PC1時可能會得到PC1由0.99個Math和0.1個Reading組成,但是這僅僅是由于Math分數(shù)本身就是Reading分數(shù)的10倍。
所以我們需要首先將每一個變量除以其所在組的標準差進行標準化處理。

主成分數(shù)
A
上面的那個案例中,我們只有兩組觀測數(shù)據(jù)。

繪制完PC1和PC2后,還可以繪制出PC3嗎?
根據(jù)之前的講述,PC3是同時垂直于PC1和PC2的。
那么繪制PC3時,基于已有的數(shù)據(jù),先去尋找垂直于PC1的直線,只會得到PC2。

尋找垂直于PC2的直線,也只會得到PC1。

所以無法繪制出PC3。
B
如果上面的案例中,Math和Reading是100%相關的.

繪制完PC1后,繪制一條垂直于PC1的PC2時發(fā)現(xiàn),所有的數(shù)據(jù)投射在PC2的點都是原點,即特征值為0。

這時,PC1能夠100%解釋所有的變異。所以此時僅有PC1一個主成分。
C
如果學生數(shù)目減少為2,那么數(shù)據(jù)的分布在二維平面只有2個點,

2個點僅可以構成一條直線,所以PC2的特征值必然為0。
即使增加一個觀測指標Gym,如果只有兩個學生的話,最終數(shù)據(jù)在三維空間只有兩個點,所以也只會有一個主成分PC1。

D
擴展一下,如果數(shù)據(jù)變?yōu)?個學生和3個觀測指標,最終會有幾個主成分呢?
3個學生會產生3個數(shù)據(jù)點,3點構成一個平面(平面是二維的),所以PC3的特征值必然為0。
因此會產生2個主成分PC1和PC2。

所以,一組數(shù)據(jù)進行降維分析時,主成分數(shù)最終等于變量數(shù)目或樣本數(shù)目(二者較小的那個),但是上限是特征值大于0的PC數(shù)。
申明
本文是根據(jù)StatQuest系列視頻整理而來
已獲得Josh Starmer授權說明
感謝久久瓊殷不辭辛苦將視頻轉載至B站

