主成分分析(PCA)原理及R语言实现

原理:

主成分分析 - stanford

主成分分析法 - 智库

主成分分析(Principal Component Analysis)原理

主成分分析及R语言案例 - 文库

主成分分析法的原理应用及计算步骤 - 文库

主成分分析之R篇

【机器学习算法实现】主成分分析(PCA)——基于python+numpy

scikit-learn中PCA的使用方法

Python 主成分分析PCA

机器学习实战-PCA主成分分析、降维(好)

关于主成分分析的五个问题



主成分分析(PCA)原理详解(推荐)

多变量统计方法,通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目,可以使用样本协方差矩阵或相关系数矩阵作为出发点进行分析。

通过对原始变量进行线性组合,得到优化的指标:把原先多个指标的计算降维为少量几个经过优化指标的计算(占去绝大部分份额)

基本思想:设法将原先众多具有一定相关性的指标,重新组合为一组新的互相独立的综合指标,并代替原先的指标。

小例子:以小学生基本生理属性为案例分享下R语言的具体实现,分别选取身高(x1)、体重(x2)、胸围(x3)和坐高(x4)。具体如下:

> student<- data.frame(
+     x1=c(148,139,160,149,159,142,153,150,151),
+     x2=c(41 ,34 , 49 ,36 ,45 ,31 ,43 ,43, 42),
+     x3=c(72 ,71 , 77 ,67 ,80 ,66 ,76 ,77,77),
+     x4=c(78 ,76 , 86 ,79 ,86 ,76 ,83 ,79 ,80)
+ )
> student.pr <- princomp(student,cor=TRUE)
> summary(student.pr,loadings=TRUE)
Importance of components:
                         Comp.1     Comp.2     Comp.3      Comp.4
Standard deviation     1.884603 0.57380073 0.30944099 0.152548760
Proportion of Variance 0.887932 0.08231182 0.02393843 0.005817781
Cumulative Proportion  0.887932 0.97024379 0.99418222 1.000000000

Loadings:
   Comp.1 Comp.2 Comp.3 Comp.4
x1 -0.510  0.436 -0.139  0.728
x2 -0.513 -0.172 -0.741 -0.398
x3 -0.473 -0.761  0.396  0.201
x4 -0.504  0.448  0.524 -0.520
> screeplot(student.pr,type="lines")

standard deviation:标准差

Proportion of Variance:方差的占比

Cumulative Proportion:累计贡献率

由上图可见四项指标做分析后,给出了4个成分,他们的重要性分别为:0.887932、0.08231182、0.02393843、0.005817781,累积贡献为:0.887932、0.97024379、0.99418222 1.000000000各个成分的碎石图也如上,可见成份1和成份2的累积贡献已经达到95%,因此采用这两个成份便可充分解释学生的基本信息。

可以算出 Z1 和 Z2的公式

> temp<-predict(student.pr)
> plot(temp[,1:2])

参考链接:R语言与数据分析之五:主成分分析(还有很多系列,慢慢看)


主成分分析在生物信息学中的运用:

主成分分析的主要步骤

主成份分析(PCA)在生物芯片样本筛选中的应用及在R语言中的实现

R语言多元分析

利用GCAT做主成分分析(PCA)

基因表达数据分析主成分分析 PCA

主成分分析(PCA)在组学数据质控中的运用

生物信息PCA主成分分析(原创)

RNA-seq高级分析之——主成分分析



RNA-seq中,主成分分析有什么意义?说白了,还是聚类!

主成分分析(Principal Component Analysis,PCA)的目标是用一组较少的不相关的变量代替大量相关变量,同时尽可能保留原始变量的信息,推导所得的变量就成为主成分,是原始变量的线性组合。也就是将N个变量(N维),通过线性组合,降维到K个综合变量(K维,K <N)来归纳性解释某一个现象。

先举个简单例子帮助理解吧:

某篮球俱乐部有40名男同学,同学之间各个指标存在或大或小的差异,包括身高、体重、视力、百米速度、肺活量、每天练球时长、睡眠时间等指标。在季度选拔中,40名同学进球得分数(成绩)存在差异,那么这些指标是否均与成绩相关?或者相关性有多大?

此时可能就要用到PCA,分析方法简述如下:

1选择初始变量

比如以上7个指标作为变量(a1 - a7),40名同学作为样本。

2对原始数据矩阵进行标准化,做相关系数矩阵

(1)原始数据矩阵:每行为40名男同学的各项指标值,每列为各项指标在40名同学中的体现;

(2)因为各个指标度量单位不同,取值范围不同,不宜直接由协方差矩阵出发,因此选择相关系数矩阵。

3计算特征值及相应特征向量

4判断主成分的个数

最常见的方式是根据特征值判断,一般选择特征值大于1的变量数作为PC个数,假如,此项分析中特征值大于1的有两个,则最终可以有2个主成分(具体主成分个数可以根据实际研究调整)。

5得到主成分表达式

通过分析得到第一主成分(PC1)和第二主成分(PC2),假设表达式如:(a1*表示a1标准化后的数值)

6结合数据的实际意义开展分析

PC1比PC2更能解释样本间差异的原因(如下图中横纵轴的百分比)。PC1的线性组合中a1、a2、a3、a6贡献度较大(前面的系数较大),PC2的线性组合中a5贡献度较大。以PC1为横轴,各个样本根据成绩大小有明显区分,说明以上7个指标中,身高、体重、视力、每天练球时长这4个指标与同学的成绩相关性更强。为了迎合线性组合的概念,应该找个更合适的词语来综合描述身高、体重、视力、每天练球时间这4个指标,以涵盖这4个指标的意义(好吧,可能小编举例不当,或者小编才疏学浅暂时想不出来~)。理解了以上的概念,再将主成分分析用于RNA-seq也很容易理解。

例如:

某个单细胞RNA-seq项目研究胚胎发育不同时期细胞的基因表达模式,研究这些细胞样本的分期是受哪些基因的调控?

样本可以是受精卵、2细胞胚、4细胞胚、8细胞胚、桑椹胚、囊胚等细胞。

PCA分析中,可以以样本为变量,对基因进行聚类。亦可以以基因为变量,对样本进行聚类,通过PC1便可以发现究竟是哪些基因对细胞分型具有重要意义。

额外资料:生物信息概述

时间: 2024-10-08 10:34:11

主成分分析(PCA)原理及R语言实现的相关文章

主成分分析(PCA)原理与实现

主成分分析原理与实现 ??主成分分析是一种矩阵的压缩算法,在减少矩阵维数的同时尽可能的保留原矩阵的信息,简单来说就是将 \(n×m\)的矩阵转换成\(n×k\)的矩阵,仅保留矩阵中所存在的主要特性,从而可以大大节省空间和数据量.最近课上学到这个知识,感觉很有意思,就在网上找一些博客进行学习,发现网上关于这方面的介绍很多,但是感觉都不太全面,单靠某一个介绍还是无法理解,当然这可能也跟个人基础有关.所以我在这里根据自己的理解写一个总结性的帖子,与大家分享同时也方便自己复习.对于主成分分析,可以参照以

K-means算法原理与R语言实例

聚类是将相似对象归到同一个簇中的方法,这有点像全自动分类.簇内的对象越相似,聚类的效果越好.支持向量机.神经网络所讨论的分类问题都是有监督的学习方式,现在我们所介绍的聚类则是无监督的.其中,K均值(K-means)是最基本.最简单的聚类算法. 在K均值算法中,质心是定义聚类原型(也就是机器学习获得的结果)的核心.在介绍算法实施的具体过程中,我们将演示质心的计算方法.而且你将看到除了第一次的质心是被指定的以外,此后的质心都是经由计算均值而获得的. 首先,选择K个初始质心(这K个质心并不要求来自于样

R语言中的遗传算法详细解析

前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学家又把生物进化的规律,总结成遗传算法,扩展到了更广的领域中. 本文将带你走进遗传算法的世界. 目录 遗传算法介绍 遗传算法原理 遗传算法R语言实现 1. 遗传算法介绍 遗传算法是一种解决最优化的搜索算法,是进化算法的一种.进化算法最初借鉴了达尔文的进化论和孟德尔的遗传学说,从生物进化的一些现象发展起

【转】R语言主成分分析(PCA)

https://www.cnblogs.com/jin-liang/p/9064020.html 数据的导入 > data=read.csv('F:/R语言工作空间/pca/data.csv') #数据的导入 > > ls(data) #ls()函数列出所有变量 [1] "X" "不良贷款率" "存贷款比率" "存款增长率" "贷款增长率" "流动比率" "收

R语言无监督学习:PCA主成分分析可视化

原文链接:http://tecdat.cn/?p=9839 总览 在监督学习中,我们通常可以访问n个  观测值的p个  特征  集  ,并 在相同观测值上测得的  Y. 无监督学习是一组没有相关的变量  Y的方法.在这里,我们重点介绍两种技术… 主成分分析:用于数据可视化或在其他监督学习方法之前进行预处理的工具. 聚类:发现数据中未知组的方法. 无监督学习的挑战 通常,无监督学习比主观学习更具挑战性,因为它更具主观性.分析没有简单的目标,例如预测响应.无监督学习通常用作  探索性数据分析的一部分

15、R语言聚类树的绘图原理

聚类广泛用于数据分析.去年研究了一下R语言聚类树的绘图原理.以芯片分析为例,我们来给一些样品做聚类分析.聚类的方法有很多种,我们选择Pearson距离.ward方法. 选择的样品有: "GSM658287.CEL", "GSM658288.CEL", "GSM658289.CEL", "GSM658290.CEL", "GSM658291.CEL", "GSM658292.CEL", &

R语言与数据分析之五:主成分分析

主成份分析历史: Pearson于1901年提出,再由Hotelling(1933)加以发展的一种多变量统计方法.通过析取主成分显出最大的个别差异,也用来削减回归分析和聚类分析中变量的数目,可以使用样本协方差矩阵或相关系数矩阵作为出发点进行分析. 通过对原始变量进行线性组合,得到优化的指标:把原先多个指标的计算降维为少量几个经过优化指标的计算(占去绝大部分份额) 基本思想:设法将原先众多具有一定相关性的指标,重新组合为一组新的互相独立的综合指标,并代替原先的指标. 成分的保留:Kaiser主张(

主成分分析法原理及其python实现

主成分分析法原理及其python实现 前言: 这片文章主要参考了Andrew Ng的Machine Learning课程讲义,我进行了翻译,并配上了一个python演示demo加深理解. 本文主要介绍一种降维算法,主成分分析法,Principal Components Analysis,简称PCA,这种方法的目标是找到一个数据近似集中的子空间,至于如何找到这个子空间,下文会给出详细的介绍,PCA比其他降维算法更加直接,只需要进行一次特征向量的计算即可.(在Matlab,python,R中这个可以

R语言数据挖掘实战系列(5)

R语言数据挖掘实战系列(5)--挖掘建模 一.分类与预测 分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值. 1.实现过程 (1)分类 分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别.分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便地计算,所以分类属于有监督的学习. (2)预测 预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制.