假设我们有如下的数据:有6小鼠的4个基因的表达数据,我们想要探索基于这4个基因的表达数据是否能区分小鼠间的差异。
gene | Mouse 1 | Mouse 2 | Mouse 3 | Mouse 4 | Mouse 5 | Mouse 6 |
---|---|---|---|---|---|---|
Gene 1 | 10 | 11 | 8 | 3 | 2 | 1 |
Gene 2 | 6 | 4 | 5 | 3 | 2.8 | 1 |
Gene 3 | 12 | 9 | 10 | 2.5 | 1.3 | 2 |
Gene 4 | 5 | 7 | 6 | 2 | 4 | 7 |
如果只考虑一个基因(gene 1),将其绘制到一维坐标轴上。即使这只是一个简单的一维数据,它也可以展示出mouse4/5/6之间更为相似,mouse1/2/3之间更为相似。如下:
如果将2个基因(gene 1和gene 2)展示在2D-plot中。可以发现,mouse4/5/6之间更为相似,表现为gene 1和gene2表达较低;mouse1/2/3之间更为相似,表现为gene 1和gene 2表达较高。如下:
如果将3个gene(gene 1/gene 2/gene 3)展示在3D-plot中,gene 1为水平轴,gene 2 为纵轴,gene 3为垂直于gene 1和gene 2的轴(类似于z 轴,gene 3的表达量越低,离原点越近,体积越大,相反则体积越小)。可以发现靠近原点的3个mouse的基因表达量更为相似,表现为3个基因低表达;而远离原点的3个mouse的表达量更为相似。如下:
如果要把4个gene的数据全部绘制在图形中,我们将不能再用以上的方法直观展示小鼠中4个基因的表达量。但却可以使用PCA 2-D图来展示变量的分布情况,如下:横坐标对应主成分1(PC1)和纵坐标对应主成分2(PC2)。
在接下来的几个章节中:
- 讨论PCA如何处理4个及以上变量的数据并将其展示在2-D PCA图中。
- 讨论PCA是如何告诉我们哪一变量对数据聚类的影响最大。例如PCA可能告诉我们gene 3 对沿着x-轴(PC 1)分布数据的影响最大(为什么呢?从原始数据来说,gene 3的变异程度最大;从PCA图来说,gene 3在PC1中的组成比例最高,这将在后续的讨论中介绍)。
为了理解PCA是如何得到降维后的数据,我们从最简单的含有2个基因的数据集开始讨论。
gene | Mouse 1 | Mouse 2 | Mouse 3 | Mouse 4 | Mouse 5 | Mouse 6 |
---|---|---|---|---|---|---|
Gene 1 | 10 | 11 | 8 | 3 | 2 | 1 |
Gene 2 | 6 | 4 | 5 | 3 | 2.8 | 1 |
计算各小鼠gene 1表达量的平均值Xgene 1;计算各小鼠gene 2表达量的平均值Xgene 2;得到该数据集的质心(Xgene 1,Xgene 2).
PCA如何定义最佳拟合直线?如下图,所有样本垂直投射至该条过质心的随机直线(红色虚线),交点为投射点(projected point)。定义的方法有2种:
注:这两种方法代表的意义相同,得到的结论也是一致的。
如下,随机选取一个样本,做该样本至随机直线的垂线(长度为b),并将该样本与原点连接(长度为a)。试想一下,我们随机转动该随机直线(c所在的直线),样本到原点的距离(a)将保持不变,而另外两条直角边(c和b)将发生变化。
- 如果我们利用直角三角形勾股定理来表示该直角三角形三条边的关系,便可以得到如下关系:
- a2=b2+c2。
- 在a2保持不变的情况下,b2越小,则c2越大。
- 故在定义最佳拟合直线时,所有样本对应b2之和最小或者对应c2之和最大均可。但是在计算的时候,计算c更加容易,故PCA在寻找最佳拟合直线的时候,利用的是所以样本对应的c2之和最大。
在寻找最佳拟合直线时,样本1对应的c2为d12,样本2对应的c2为d22,样本3对应的c2为d32,以此类推......
定义:d12 + d22 + d32 + d42 + d52 + d62 = sum of squared distances(距离平方和) = SS(distance)。
当SS(distance)取得最大值时,该直线为最佳拟合直线,称该条直线为主成分1(principal component 1,PC1)。
当SS取得最大时,便可得到最佳拟合直线。通过求解直线,我们可以知道PC1的斜率为0.25。也就是说,gene 1变化4个单位的同时,gene 2变化1个单位。数据沿Gene 1的变化幅度大于沿gene 2的变化幅度。
如果用鸡尾酒来形容PC1,那么PC1由4部分gene 1和1部分gene 2混合而成。鸡尾酒配方中的比率告诉我们,gene 1在描述数据的分布时更加重要。鸡尾酒配方的术语:PC1是gene 1和gene 2的线性组合。
根据勾股定理:在PC1上,当gene 1 = 4,gene 2 = 1,此时斜边 = 4.12。
当使用SVD进行PCA分析时,PC1需要将斜边进行归一化(scaled to 1)。故需要将直角三角形的三边同时进行归一化,将三条边同时除以4.12。将PC1归一化后,组成PC1的gene1和gene 2的配方发生改变,PC 1 由0.97部分gene1和0.242部分gene2组成。尽管配方的值发生可改变,但是gene 1与gene2组成的比值保持不变,依然为4。术语小结
- 特征向量(奇异向量):类似于高中阶段学的法向量。最佳拟合直线(PC 1)上,由0.97个单位gene 1 和0.242个单位gene 2正交组成的1 个单位长度向量,被叫做PC 1的奇异向量(singular vector)或者特征向量(Eigenvector)。其中每个gene的组成部分(如0.97个单位gene 1 和0.242个单位gene 2),被称为因子载荷(loading scores)。
- 特征值:sum of squared distance = SS(distances)。PCA中,称最佳拟合直线的SS(distances)为PC1的特征值(Eigenvalue)。
- 奇异值:SS(distances for PC1) = Eigenvalue for PC1;SS(distances for PC1) 的平方根= singular value for PC1。PC1特征值的平方根称为PC1的奇异值。
在2D-plot中,过原点做PC1的垂线,这样的垂线仅有一条,故该直线即为PC2。
将样本分别投射至PC1和PC2轴上,同时旋转PC1轴和PC2轴,使得PC1轴为新的水平轴使得PC2轴为新的纵轴,即获得最终的PCA图。
对于新的PCA-plot,同一样本来源的PC1和PC2的坐标轴又对应其来源样本。如下图中,同一样本投射至PC1和PC2后,其对应坐标的交点又还原为同一个样本的数据(如样本6)。
特征值除以(总样本数-1)计算样本围绕原点的变异。即
- SS(distances for PC1) / (n-1) = variation for PC1
- SS(distances for PC2) / (n-1) = variation for PC2
假设在以上分析的数据中,the variation for PC1=15, the variation for PC 2=3。那么总变异=15+3=18.
碎石图(scree plot)展示每个主成分(PC)所占的百分比。 故利用碎石图展示此分析分结果如下:PC1=83%,PC2=17%。
完成了2个变量数据中的PCA分析,我们继续在3个变量的数据中进行PCA分析。
3个变量中的PCA与2个变量的PCA方法一致。唯一不同的是,在寻找到PC1和PC2之后,需要继续寻找PC3。然后,根据所有主成分的特征值计算其对应的变异,并计算其所占总变异的百分比、绘制scree plot。在该数据中,PC1占总变异的79%;PC2占总变异的15%;PC3占总变异的6%。
因为PC1和PC2能解释94%的数据变异,故仅含PC1和PC2的2D-plot便可以很好的展示该3D数据的分布。最后,仅保留3-D PCA中的样本和PC1、PC2,将3D-图转化成2-D PCA图。
理论上来说,每一个变量中有一个主成分,但是实际上PC的数量等于变量或样本数量(数量较少的变量或样本)的个数(这将在后面的学习中详细讨论)。
如果我们的样本中有4个变量(gene),那么将不能在4-D graph中展示结果。即使展示出来,也会让人眼花缭乱。但是我们却可以使用PCA (不论我们是否做图均可)和绘制scree plot。
在4个变量中进行PCA分析的方法同前。最后,我们可以将数据投射到前2个主成分(PC1和PC2),得到scree plot和2-D PCA Plot,如下:
本小节主要讲述了在何时使用PCA,探讨了实现PCA的主要原理。接着在下一小节,我们将讨论几个在PCA实践中的注意事项。
参考视频:https://www.youtube.com/watch?v=FgakZw6K1QQ&list=PLblh5JKOoLUICTaGLRoHQDuF_7q2GfuJF&index=24
编辑:吕琼
校审:罗鹏