找回密码
 立即注册
查看: 170|回复: 0

[R语言可视化-精美图形绘制系列]--主成分分析(PCA)

[复制链接]
发表于 2022-11-21 11:29 | 显示全部楼层 |阅读模式
本期内容为[R语言可视化-精美图形绘制系列]--主成分分析(PCA)--
主成分分析:PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。
    一、降维概述
    1.1 数组和序列(Series)的维度
    对于数组和序列(Series)来说,维度就是shape()函数返回的结果,shape()函数中返回了几个数字,就是几维(也有人看array()开头或者结尾连续中括号的数量)。
    不分行列的数组叫一维数组,此时shape返回单一的维度上的数据个数。有行列之分的数组叫二维数组,也称为表。一张表最多有二个维度,复数的表构成了更高维度的表。当一个数组中存在2张3行4列的表时,shape返回的是更高维度的行和列。当数组中存在2组2张3行4列的表时,数据就是4维,shape返回(2,2,3,4)。


    数组中的每一张表,都可以是一个特征矩阵或一个DataFrame,这些结构永远只有一张表,所以一定有行列,其中行是样本,列是特征。针对每一张表,维度指的是样本的数量或特征的数量,一般无特别说明,指的都是特征的数量。除了索引之外,一个特征是一维,两个特征是二维,n个特征是n维。


  1.2 图像中的维度
    对图像来说,维度就是图像中特征向量的数量。特征向量可以理解为是坐标轴,一个特征向量定义一条直线,是一维;两个相互垂直的特征向量定义一个平面,即一个直角坐标系,就是二维;三个相互垂直的特征向量定义一个空间,即一个立体直角坐标系,就是三维;三个以上的特征向量相互垂直,定义人眼无法看见,也无法想象的高维空间。
    1.3 降维解释
  降维:算法中的“降维”,指的是降低特征矩阵中特征的数量。降维的目的是为了让算法运算更快,效果更好,但其实还有另一种需求:数据可视化。图像和特征矩阵的维度是可以相互对应的,即一个特征对应一个特征向量,对应一条坐标轴。所以,三维及以下的特征矩阵,是可以被可视化的,这可以帮助我们很快地理解数据的分布,而三维以上特征矩阵的则不能被可视化,数据的性质也就比较难理解。
---
一、标准化
    为了让每一个维度对分析的结果造成同样的影响,我们需要对连续的初始变量的范围作标准化。
    具体一点说就是因为我们后续的结果对数据的方差十分敏感,取值范围较大的维度会比相对较小的维度造成更大的影响(例如一个在1-100之间变化的维度对结果的影响,比一个0-1的更大),会导致一个偏差较大的结果,所以,将数据转化到相似的范围可以预防这个问题。
数据标准化的方法如下


二、计算协方差矩阵
    这一步是为了理解数据集中的变量是如何从平均值变化过来的,同时可以查看不同的特征之间又有什么关系,此时我们要计算协方差矩阵。
协方差矩阵是一个P*P的对称矩阵(P是维度的数量)它涵盖了数据集中所有元组对初始值的协方差,例如一个拥有三个变量x,y,z和三个维度的数据集,协方差矩阵将是一个3*3的矩阵(协方差的计算方法及含义见上文):


--
资料来源:
干货 :一文读懂主成分分析_数据分析v的博客-CSDN博客
主成分分析(PCA)_二哥不像程序员的博客-CSDN博客_主成分分析
---
从分享自己的学习教程至今快有小一年了,我的账号没有使用钞能力推广。因此感谢大家对我的关注。自己是处于“小白”阶段这个层次,自己一直是这样的定义。自己的更新是不定时的,也许你会持续看到我更新,也许你很久看不到我更新文章,这都是正常状态,自己一个人的精力有限,请谅解。主要原因是自己更新的是自己的学习笔记。也希望大家可以投稿,分享自己的学习笔记
此外,有童鞋问是否有“粉丝群”,我的天啊!我也会有一天可以建立自己的“群”!但是,现在我暂时是不会建群!因为,自己能力有限。不能很好的帮助大家,以及建立这些群管理起来也是比较费时间的。

但是,但是,如果你愿意,可以加小杜的微信【前提:需转账50元(不介意更多)】目前,只要是小杜的微信好友,都可以直接向小杜索要每期的教程的实例数据和代码(这部分老铁也是后期小杜“粉丝群”的首选人员,哈哈哈哈........)[VX可在公众号界面获得]
温馨提示:这个请根据自己的意愿选择,不要盲目添加。小杜也是生信小白,也许无法提供给你想要的帮助,请理智消费
---
如何获得绘图代码和数据!!
途径一:给本文打赏,小杜看到后立即将本文的实例数据和代码发给你!
途径二:加好友,后期可以获得所有教程代码!
---
代码部分:
1. 导入数据
## inputdata PCA data
Sample01   Sample02    Sample03  Sample04
mRNA.Solyc00g500329.1.1 -0.2707275  0.4083721 -0.11663103 -0.521047
mRNA.Solyc00g500296.1.1 -0.2707218  0.4827739 -0.05794281 -0.521047
mRNA.Solyc01g005160.4.1 -1.2118387 -0.6153115  1.19154446 -1.224433
mRNA.Solyc01g005760.3.1  0.1866860  0.3774126  0.27799407  1.073132
                           Sample05
mRNA.Solyc00g500329.1.1 -0.29660887
mRNA.Solyc00g500296.1.1 -0.26940989
mRNA.Solyc01g005160.4.1 -0.02515638
mRNA.Solyc01g005760.3.1  0.87927082

##
Samp  conditions
Sample01  CK
Sample02  CK
Sample03  CK
Sample04  Group01
Sample05  Group01
Sample06  Group01
Sample07  Group02
Sample08  Group02
Sample09  Group02
Sample10  Group03
Sample11  Group03
Sample12  Group03
Sample13  Group04
Sample14  Group04
Sample15  Group04
            CK   Treat_01    Treat_02   Treat_03   Treat_04
gene01 -0.84977517  1.4181238 -0.54757208 -0.1937784 -0.2953731
gene02  0.47702001  1.2419958  0.30147166  0.3991298  1.8328058
gene03 -0.25585638 -0.8757098  0.01523679  0.3542401 -0.2953731
gene04 -0.76343921 -0.1194277 -<span class="mi">0.15231595  0.8108953 -0.2953731
gene05  0.01850849 -0.8757098 -1.42282342  1.0168803  3.6391267
gene06 -0.84977517  1.6553410 -0.96212175  3.2958347 -0.29537312. 过滤参数
data <- data[apply(data, 1, var)!=0,]3.  计算绝对偏差
mads <- apply(data, 1, mad)
data <- data[rev(order(mads)),]4.  PCA分析,scale标准化
pca <- prcomp(data_t[,1:variableL], scale=TRUE)
head(pca)5.  结果展示
fviz_eig(pca, addlabels = TRUE)

## PAC样品聚类信息展示
fviz_pca_ind(pca, repel=F)

## 根据样品分组上色
fviz_pca_ind(pca, col.ind=data_t$conditions, mean.point=F, addEllipses = T, legend.title="Groups")

6. 根据分组上色并绘制95%置信区间


--
往期文章(总汇)
01-[R语言可视化-精美图形绘制系列]--精美火山图
02-[R语言可视化-精美图形绘制系列--柱状图
03-[R语言可视化-精美图形绘制系列--功能富集分析
04-[R语言可视化-精美图形绘制系列—多组GO富集可视化
05-[R语言可视化-精美图形绘制系列--堆积图]
06-[R语言可视化-精美图形绘制系列--组间相关性分析]
07-[R语言可视化-精美图形绘制系列]--Mental分析
08-[R语言可视化-精美图形绘制系列--复杂热图+两图渐变连线]-【转载】
09-[R语言可视化-精美图形绘制系列--桑基图(Sankey)]
10-[R语言可视化-精美图形绘制系列--柱状图误差线标记]
11-跟着NC学作图 | 柱状图与相关性图
12-[R语言可视化-精美图形绘制系列--GO、KEGG富集通路关联图]
13-[跟着“基迪奥生物学”作图]--截断图
14-[R语言可视化-精美图形绘制系列]--显著性箱线图
14-2[R语言可视化]--箱线图不同的画法及参数设置 | 学习笔记
15-[R语言可视化-精美图形绘制系列]--组内相关性分析
--
小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 19:32 , Processed in 0.091615 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表