BioStatR语言R 统计学和算法

StatQuest-PCA学习

2019-04-27  本文已影响37人  刘小泽

刘小泽写于19.4.27
聚类分析的基础就是PCA,掌握这个对以后那么这次就先跟着statquest来学习一下,视频链接在https://www.youtube.com/watch?v=FgakZw6K1QQ&feature=youtu.be>

好的,首先看看为什么需要进行PCA?

假设现在有一个表达矩阵,行为基因,列为样本,中间数据是表达量:

因此,PCA的作用就是:对超过4维的数据降维到一个2D平面图中,并且这个图中"相似相聚"

PCA怎么操作的?

还是利用2维(2个基因)的数据进行理解:

  1. 先得到Gene1的平均数(横轴红色)
  1. 同理得到Gene2的平均数(纵轴红色)。
  2. 接着计算整个数据的中心:(蓝色)
  1. 然后将数据平移,保证最后的中心在(0,0)的位置

这里注意:数据平移并不会改变数据结构以及相互之间的大小关系,比如原来最大的值现在还是最大;原来在最左下方的现在还是在那个位置

  1. 平移后的数据可以做一个辅助线进行拟合。先随便画一条穿过中心点的线,然后进行旋转,尽量拟合进来最多的数值。

    这里又引入一个问题:PCA是怎么判断哪条拟合线质量最好呢?

    比如随便画一条,然后将数据投射到这条线上,它看的是投射点到原点/中心点(0,0)的距离平方

    得到了PC1这条拟合线,假设斜率为0.25,就意味着:沿着x轴走4个单位,才沿着y轴走1个单位(术语叫做:Gene1和Gene2的线性组合=> linear combination)。换句话说就是数据主要是沿着Gene1的x轴分布,数据整体分布受Gene1的影响更大

    因此,当看到"PC1 is a linear combination of variables",意思就是PC1是由几种Gene1成分加上几种Gene2成分组成的

  2. 确定了PC1后,进行scale缩放操作,将红线长度缩放成1,其他两边也进行等比例缩放。【术语:0.97的Gene1与0.242的Gene2叫做PC1的"Singular Vector"或者"Eigenvector"】 ,然后Eigenvector再开方得到的结果叫"Singlular Value for PC1"

  3. 因为这是一个2维的图形,因此PC2是PC1的垂直线,并且不需要任何进一步的操作


  4. 然后就是画最终的PCA plot

    首先就是将PC1放到水平


    接着找到PC1、PC2同一个投射点在2D图中的位置,比如Sample6

  5. 计算PC1、PC2的贡献率

    先分别计算PC1、PC2的variation,然后算比例即可

总结

对于简单的二维数据,很方便理解,n维数据也是这样处理,大体思路就是:


欢迎关注我们的公众号~_~  
我们是两个农转生信的小硕,打造生信星球,想让它成为一个不拽术语、通俗易懂的生信知识平台。需要帮助或提出意见请后台留言或发送邮件到jieandze1314@gmail.com

Welcome to our bioinfoplanet!
上一篇下一篇

猜你喜欢

热点阅读