主成分分析 (PCA, principal component analysis)是一種數學降維方法, 利用正交變換 (orthogonal transformation)把一系列可能線性相關的變量轉換為一組線性不相關的新變量,也稱為主成分,從而利用新變量在更小的維度下展示數據的特徵。
PCA主成分分析實戰和可視化 | 附R代碼和測試數據
用了這麼多年的PCA可視化竟然是錯的!!!
還在用PCA降維?快學學大牛最愛的t-SNE算法吧(附Python/R代碼)
WGCNA分析,簡單全面的最新教程 (這裡面也有PCA的妙用)
主成分是原有變量的線性組合,其數目不多於原始變量。組合之後,相當於我們獲得了一批新的觀測數據,這些數據的含義不同於原有數據,但包含了之前數據的大部分特徵,並且有著較低的維度,便於進一步的分析。
在空間上,PCA可以理解為把原始數據投射到一個新的坐標系統,第一主成分為第一坐標軸,它的含義代表了原始數據中多個變量經過某種變換得到的新變量的變化區間;第二成分為第二坐標軸,代表了原始數據中多個變量經過某種變換得到的第二個新變量的變化區間。這樣我們把利用原始數據解釋樣品的差異轉變為利用新變量解釋樣品的差異。
這種投射方式會有很多,為了最大限度保留對原始數據的解釋,一般會用最大方差理論或最小損失理論,使得第一主成分有著最大的方差或變異數 (就是說其能儘量多的解釋原始數據的差異);隨後的每一個主成分都與前面的主成分正交,且有著僅次於前一主成分的最大方差 (正交簡單的理解就是兩個主成分空間夾角為90°,兩者之間無線性關聯,從而完成去冗餘操作)。
簡化運算。
在問題研究中,為了全面系統地分析問題,我們通常會收集眾多的影響因素也就是眾多的變量。這樣會使得研究更豐富,通常也會帶來較多的冗餘數據和複雜的計算量。
比如我們我們測序了100種樣品的基因表達譜藉以通過分子表達水平的差異對這100種樣品進行分類。在這個問題中,研究的變量就是不同的基因。每個基因的表達都可以在一定程度上反應樣品之間的差異,但某些基因之間卻有著調控、協同或拮抗的關係,表現為它們的表達值存在一些相關性,這就造成了統計數據所反映的信息存在一定程度的冗餘。另外假如某些基因如持家基因在所有樣本中表達都一樣,它們對於解釋樣本的差異也沒有意義。這麼多的變量在後續統計分析中會增大運算量和計算複雜度,應用PCA就可以在儘量多的保持變量所包含的信息又能維持儘量少的變量數目,幫助簡化運算和結果解釋。
去除數據噪音。
比如說我們在樣品的製備過程中,由於不完全一致的操作,導致樣品的狀態有細微的改變,從而造成一些持家基因也發生了相應的變化,但變化幅度遠小於核心基因 (一般認為噪音的方差小於信息的方差)。而PCA在降維的過程中濾去了這些變化幅度較小的噪音變化,增大了數據的信噪比。
利用散點圖實現多維數據可視化。
在上面的表達譜分析中,假如我們有1個基因,可以在線性層面對樣本進行分類;如果我們有2個基因,可以在一個平面對樣本進行分類;如果我們有3個基因,可以在一個立體空間對樣本進行分類;如果有更多的基因,比如說n個,那麼每個樣品就是n維空間的一個點,則很難在圖形上展示樣品的分類關係。利用PCA分析,我們可以選取貢獻最大的2個或3個主成分作為數據代表用以可視化。這比直接選取三個表達變化最大的基因更能反映樣品之間的差異。(利用Pearson相關係數對樣品進行聚類在樣品數目比較少時是一個解決辦法)
發現隱性相關變量。
我們在合併冗餘原始變量得到主成分過程中,會發現某些原始變量對同一主成分有著相似的貢獻,也就是說這些變量之間存在著某種相關性,為相關變量。同時也可以獲得這些變量對主成分的貢獻程度。對基因表達數據可以理解為發現了存在協同或拮抗關係的基因。
因為原文是用Rmarkdown轉碼而來,格式顯示不規範,請移步原文連結查看。
高顏值免費在線繪圖R統計和作圖往期精品畫圖三字經 生信視頻 生信系列教程
心得體會 TCGA資料庫 Linux Python
高通量分析 免費在線畫圖 測序歷史 超級增強子
生信學習視頻 PPT EXCEL 文章寫作 ggplot2
海哥組學 可視化套路 基因組瀏覽器
色彩搭配 圖形排版 互作網絡
自學生信 2019影響因子 GSEA 單細胞
後臺回復「生信寶典福利第一波」獲取教程合集