[R语言可视化-精美图形绘制系列]--主成分分析(PCA)
本期内容为--主成分分析(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元(不介意更多)】。目前,只要是小杜的微信好友,都可以直接向小杜索要每期的教程的实例数据和代码(这部分老铁也是后期小杜“粉丝群”的首选人员,哈哈哈哈........)。
温馨提示:这个请根据自己的意愿选择,不要盲目添加。小杜也是生信小白,也许无法提供给你想要的帮助,请理智消费。---
如何获得绘图代码和数据!!
途径一:给本文打赏,小杜看到后立即将本文的实例数据和代码发给你!
途径二:加好友,后期可以获得所有教程代码!---
代码部分:
1. 导入数据
## inputdata PCA data
Sample01 Sample02 Sample03Sample04
mRNA.Solyc00g500329.1.1 -0.27072750.4083721 -0.11663103 -0.521047
mRNA.Solyc00g500296.1.1 -0.27072180.4827739 -0.05794281 -0.521047
mRNA.Solyc01g005160.4.1 -1.2118387 -0.61531151.19154446 -1.224433
mRNA.Solyc01g005760.3.10.18668600.37741260.277994071.073132
Sample05
mRNA.Solyc00g500329.1.1 -0.29660887
mRNA.Solyc00g500296.1.1 -0.26940989
mRNA.Solyc01g005160.4.1 -0.02515638
mRNA.Solyc01g005760.3.10.87927082
##
Sampconditions
Sample01CK
Sample02CK
Sample03CK
Sample04Group01
Sample05Group01
Sample06Group01
Sample07Group02
Sample08Group02
Sample09Group02
Sample10Group03
Sample11Group03
Sample12Group03
Sample13Group04
Sample14Group04
Sample15Group04
CK Treat_01 Treat_02 Treat_03 Treat_04
gene01 -0.849775171.4181238 -0.54757208 -0.1937784 -0.2953731
gene020.477020011.24199580.301471660.39912981.8328058
gene03 -0.25585638 -0.87570980.015236790.3542401 -0.2953731
gene04 -0.76343921 -0.1194277 -<span class="mi">0.152315950.8108953 -0.2953731
gene050.01850849 -0.8757098 -1.422823421.01688033.6391267
gene06 -0.849775171.6553410 -0.962121753.2958347 -0.29537312. 过滤参数
data <- data3.计算绝对偏差
mads <- apply(data, 1, mad)
data <- data4.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=&#34;Groups&#34;)
6. 根据分组上色并绘制95%置信区间
--
往期文章(总汇)
01---精美火山图
02-[R语言可视化-精美图形绘制系列--柱状图
03-[R语言可视化-精美图形绘制系列--功能富集分析
04-[R语言可视化-精美图形绘制系列—多组GO富集可视化
05-
06-
07---Mental分析
08--【转载】
09-
10-
11-跟着NC学作图 | 柱状图与相关性图
12-
13-[跟着“基迪奥生物学”作图]--截断图
14---显著性箱线图
14-2--箱线图不同的画法及参数设置 | 学习笔记
15---组内相关性分析
--
小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!
页:
[1]