在RNA-seq
分析结果中经常会看到由两个主成分(PC1,PC2)
绘制的PCA (principal component analysis)
质控图,来反映样本间的远近关系。那么,PCA
到底是个什么东西?
简单来说,PCA
是一种无监督学习方法,利用正交变换将原本由很多线性相关变量表示的数据转变为少数线性无关变量表示的数据,转变后这些线性无关的变量称为主成分。通常,PC
的个数要小于原始变量,具有降维的效果。由此可见,直接来说就是PCA
简化了数据,降低了数据分析的复杂度。并且,PCA
分析结果中PC
的方差依次递减,即PC
隐含的信息量递减。也就是说,第一个PC
在样本间区别最大,依次递减。
举个栗子,RNA-seq
测序数据,经过比对定量后得到表达谱。此时,其中每个样本的结果都是由2万个左右基因的表达值组成,每一个基因都是一个变量,也就是说每个样本的数据都是由2万个变量组成。那么,如果直接用这两万个变量来评估样本两两间的相似性,这无疑会复杂很多。此时,做个PCA
分析,选取样本间方差最大的前两个主成分来做区分,nice!
现在回头来看看PCA
是如何转换变量的,为了能够直观地展示,咱们来个简单的示例说明PCA
的原理。例如,有三个样本S1-3
,样本有两个基因geneA
和geneB
的表达值,如下图所示。那么,评估三个样本间的远近关系,就变成评估样本内两个基因表达值的情况。显然,直接用geneA
和geneB
两个变量来评估样本的远近都不那么容易,这里还仅仅是两个变量,想想如果有2万多个变量会如何。
所以,降低数据的复杂度很有必要。这个时候利用正交变换找到一个变量,如图PC1
,将geneA
和geneB
映射过去,两个变量合二为一。此时,再比较三个样本的远近关系就变得简单许多,可以利用PC1
的距离来评估即可,如图所示,在PC1
变量上很容易看出S2
与 S3
更近。
可见,PCA
确实是降低数据复杂度的好办法,比如单细胞数据分析时也用到了。从使用的角度来说,这样理解PCA
已经完全够用。如果要躬身去做的话,还有一个细节要注意,做PCA
之前需要将数据标准化,使数据中每一变量的平均值为0 ,方差为1。