一文看懂PCA主成分分析

2021-02-19 生信寶典
主成分分析簡介

主成分分析 (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 單細胞 

後臺回復「生信寶典福利第一波」獲取教程合集

相關焦點

  • 30分鐘學會PCA主成分分析
    PCA主成分分析算法(Principal Components Analysis)
  • R做PCA主成分分析
    PCA(Principal Component Analysis)是一種常用的數據分析方法。
  • R 語言主成分分析(PCA)實戰教程
    主成分分析 Principal Component Methods(PCA)允許我們總結和可視化包含由多個相互關聯的定量變量描述的個體/觀察的數據集中的信息。每個變量都可以視為不同的維度。如果數據集中包含 3 個以上的變量,那麼可視化多維超空間可能非常困難。主成分分析用於從多變量數據表中提取重要信息,並將此信息表示為一組稱為主成分的新變量。
  • 30 分鐘看懂 PCA 主成分分析
    本篇和大家分享一下PCA主成分分析的概念和在Python中的使用。之前也分享過兩篇文章,也非常不錯,可以結合起來一起看,加深理解。一文讀懂PCA算法的數學原理講講降維算法:PCA主成分分析PCA主成分分析算法(Principal Components Analysis)是一種最常用的降維算法。
  • R語言 PCA主成分分析
    問題或建議,請公眾號留言;R語言 PCA主成分分析前言統計學背景知識協方差相關係數函數總結實例講解1.載入原始數據2.作主成分分析3.結果解讀4.畫主成分的碎石圖並預測5.PCA結果繪製後記前言PCA分析大家肯定經常看到,但是你真的懂PCA分析的結果嗎?圖我也會看,我只是不是很清楚PCA背後輸出結果的解讀而已。
  • 淺談主成分分析PCA
    主成分分析(Principal component analysis, PCA)是一種很常見的數據分析方法,主要用於高維數據的降維處理和高維數據的可視化。如下圖所示,實驗記錄人的動作信息,然後PCA分析便可以捕捉人運動過程中的motion中的代表性動作[1]。
  • 主成分分析(PCA)實用指南(R&Python)
    今天我們聊聊基礎知識,主要介紹一種化繁為簡的神奇方法——主成分分析。注意,理解本文需要具備一定統計學基礎。有時候,如果數據集裡有太多變量,你會怎麼辦?以下是每一位分析師都可能遇到的幾種情況:試想一下,當自己身處這四種境地,你會怎麼做?不要逃,處理這些情況並沒有想像中的那麼困難,一些統計方法,如因子分析、主成分分析就有助於克服它們。
  • 機器學習之降維算法5-主成分分析PCA
    本文介紹用於降維的主成分分析機器學習方法以及如何在 Python 實現。主要有:計算主成分分析的過程以及如何選擇主成分。如何在 NumPy 中計算主成分分析。如何計算主成分分析以在 scikit-learn 中重用更多數據。主成分分析主成分分析,簡稱PCA,是一種數據降維的方法。
  • 主成分分析(PCA)及其MATLAB的實現方法
    概述PCA的目的PCA的幾何意義原理與步驟簡述算法一:特徵分解(Eigen Decomposition)算法二:奇異值分解
  • PCA主成分分析實戰和可視化 | 附R代碼和測試數據
    一文看懂PCA主成分分析中介紹了PCA分析的原理和分析的意義(基本簡介如下,更多見博客),今天就用數據來實際操練一下。
  • 100天搞定機器學習|Day59 主成分分析(PCA)原理及使用詳解
    PCA原理主成分分析法(Principal Component Analysis)是一種基於變量協方差矩陣對數據進行壓縮降維、去噪的有效方法,它藉助正交變換將一組可能存在相關性的變量轉換為一組線性不相關的變量,轉換後的這組變量叫主成分(PC),主成分是舊特徵的線性組合。
  • 用StackOverflow訪問數據實現主成分分析(PCA)
    大數據文摘出品編譯:汪小七、張馨月、雲舟主成分分析(PCA:Principal Component Analysis)非常有助於我們理解高維數據,我利用Stack Overflow的每日訪問數據對主成分分析進行了實踐和探索,你可以在rstudio :: conf 2018上找到其中一篇演講的錄音
  • R數據分析:主成分分析及可視化
    主成分分析是一個常見的降維,探索性技術,常常在量表編制或者其它變量較多數據集分析的時候會用到,今天給大家寫寫R語言中如何快速高效的進行PCA和可視化。<- prcomp(mtcars, center = TRUE,scale. = TRUE)summary(mtcars.pca)上面的代碼就實現了整個數據的主成分分析,並且輸出了我們的每個主成分解釋的方法比。
  • 一文讀懂stata做主成分分析
    由計量經濟學服務中心綜合整理,轉載請聯繫一.主成分分析主成分分析方法是降維分析方法
  • R語言之主成分分析
    主成分分析(Principal Component Analysis,PCA),就是將多個變量通過 線性變換以選出較少個數重要變量的一種多元統計分析方法
  • 主成分分析(PCA)
    本文上半部分轉載自:http://blog.codinglabs.org/articles/pca-tutorial.html這位大佬已經寫的非常簡潔明了
  • 【R語言】數據降維——主成分分析
    # 對鳶尾花數據集的前4列進行主成分分析iris_train_pca <- princomp(iris_train[,1:4])# 繪製碎石圖screeplot(iris_train_pca, npcs = ncol(iris_train),type="lines")碎石圖❝[注]:
  • 機器學習之數據降維總結+代碼示例復現(線性代數/矩陣論/主成分分析PCA/核主成分分析KPCA/奇異值分解SVD)
    PCA(Principal Component Analysis)主成分分析    關於主成分分析PCA的原理以及數學解釋,請參照本文章開始部分手寫筆記整理。PCA識別最靠近數據的超平面,並將樣本數據集投影到該超平面上。
  • 主成分分析PCA一站式指南
    編者按:General Assembly數據科學主講Matt Brems講解了主成分分析的原理、數學和最佳實踐。
  • PCA-主成分分析
    PCA-主成分分析PCA是什麼PCA(Principal Component Analysis,主成分分析)是一種常用的數據分析方法。PCA被稱為應用線性代數的最有價值的成果之一,在從神經科學到計算機圖形學的各種分析中都得到了廣泛使用。