主成分分析(PCA)原理及R语言实现
在生物信息分析中,PCA、t-SNE和diffusionMap其实是一类东西。
StatQuest: Principal Component Analysis (PCA) clearly explained (2015) 必须一看
How to perform dimensionality reduction with PCA in R 具体实现
#Generate data m=50 n=100 frac.gaps <- 0.5 # the fraction of data with NaNs N.S.ratio <- 0.25 # the Noise to Signal ratio for adding noise to datax <- (seq(m)*2*pi)/m t <- (seq(n)*2*pi)/n#True field Xt <- outer(sin(x), sin(t)) + outer(sin(2.1*x), sin(2.1*t)) + outer(sin(3.1*x), sin(3.1*t)) +outer(tanh(x), cos(t)) + outer(tanh(2*x), cos(2.1*t)) + outer(tanh(4*x), cos(0.1*t)) + outer(tanh(2.4*x), cos(1.1*t)) + tanh(outer(x, t, FUN="+")) + tanh(outer(x, 2*t, FUN="+"))Xt <- t(Xt)#PCA res <- prcomp(Xt, center = TRUE, scale = FALSE) names(res)
一下都是copy的,没什么好看的!
原理:
主成分分析(Principal components analysis)-最大方差解释
Principal component analysis for clustering gene expression data
主成分分析PCA
主成分分析 - 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.000000000Loadings: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便可以发现究竟是哪些基因对细胞分型具有重要意义。
额外资料:生物信息概述
主成分分析(PCA)原理及R语言实现相关推荐
- 主成分分析(PCA)原理及R语言实现及分析实例
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.最近我们被客户要求撰写关于主成分分析(PCA)的研究报告,包括一些图形和统计输出.例如,使 ...
- 主成分分析计算机如何实现,主成分分析(PCA)原理及R语言实现及分析实例
评价美国法官评分中要保留的主成分个数.碎石图(直线与x符号).特征值大于1准则(水平线)和100次模拟的平行分析(虚线)都表明保留一个主成分即可 可以看出只有左上交Component Number为1 ...
- ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
决策树ID3原理及R语言python代码实现(西瓜书) 摘要: 决策树是机器学习中一种非常常见的分类与回归方法,可以认为是if-else结构的规则.分类决策树是由节点和有向边组成的树形结构,节点表示特 ...
- 判别分析原理及R语言实现
判别分析内容 判别分析做的好能挖掘数据最大的价值.判别分析(discriminat analysis)他要解决的问题是在一些已知研究对象已经用某种方法分成若干类的情况下,确定新的样品属于已知类别中的哪 ...
- 主成分分析旋转矩阵MATLAB实现,R语言高维数据的主成分pca、t-SNE算法降维与可视化分析案例报告...
维度降低有两个主要用例:数据探索和机器学习.它对于数据探索很有用,因为维数减少到几个维度(例如2或3维)允许可视化样本.然后可以使用这种可视化来从数据获得见解(例如,检测聚类并识别异常值).对于机器学 ...
- r语言平均值显著性检验_8小时整理!t检验原理!R语言实现!一文彻底搞定t检验(上)...
本文中会加一些注解,是对于一些常用混淆概念得解释.主要内容包括t检验适用范围.实际案例以及R语言的实现. 因文章内容过长,所以分为上下两篇 t检验(t test)亦称 t检验,以t分布为基础,是定量资 ...
- canoco5主成分分析步骤_基于R语言的主成分分析
基于R语言的主成分分析 加入的SPSS群里有人问,怎么用SPSS进行主成分分析.确实没有注意到这种操作.很好奇,于是翻了翻孙振球的<医学统计学>,发现主成分分析这一块,竟使用了SAS!后来 ...
- 比率检验原理及R语言实现
总体比率的假设检验实际上是业界最常用也是最需要的检验,例如在ABtest中,检验两个实验的转化率是否有显著差异,则需要用到比率检验.本文介绍比率检验的原理,以及R语言的实现代码. 单总体比率的假设检验 ...
- 机器学习中的K-means算法原理与R语言实例
聚类是将相似对象归到同一个簇中的方法,这有点像全自动分类.簇内的对象越相似,聚类的效果越好.支持向量机.神经网络所讨论的分类问题都是有监督的学习方式,现在我们所介绍的聚类则是无监督的.其中,K均值(K ...
最新文章
- 【Git】git使用 - 各种常用场景命令解决
- is_best = recent_bleu4 > best_bleu4
- 关于WCF、WebAPI、WebService之间的区别总结 分布式通信技术
- 数据库杂谈(九)——事务管理
- apktoolkit apk反编译没有文件_[工具] Mac下一键APK逆向环境
- 从程序员到项目经理(四):外行可以领导内行吗
- 【杂项】2020年年度报告
- nginx react vue location history 配置
- android studio控制台调试程序,Android Studio ADB网络调试汇总
- 记飞机大战小游戏1.0
- java 运算符的程序_【Java】运算符
- HDU 4052 Adding New Machine (线段树+离散化)
- Linux CH340驱动安装
- 1301_两种方式为开发板增加串口监控功能
- Redis集群原理分析
- vue 动态加载阿里云字体图标库
- python 验证码识别
- linux中进程unit是什么意思,linux---systemd进程
- mate7 android 6 root权限管理,华为Mate7 Root权限怎么获取 华为Mate7 Root权限获取教程【详解】...
- 英雄互娱大数据面试题