Rstudio绘制PCA图
程序员文章站
2022-07-15 07:59:02
...
主成分分析(PCA)使我们能够总结和可视化包含多个相互关联的定量变量所描述的个体/观测值的数据集中的信息。每个变量都可以视为一个不同的维度。 如果数据集中有3个以上的变量,则很难可视化多维超空间。主成分分析用于从多元数据表中提取重要信息,并将此信息表示为一组称为主成分的少量新变量。这些新变量对应于原始变量的线性组合。主成分的数量小于或等于原始变量的数量。给定数据集中的信息对应于其中包含的总变化。PCA的目标是识别数据变化最大的方向(或主要成分)。
换句话说,PCA将多元数据的维数减少为两个或三个主要成分,这些成分可以图形方式可视化,而信息丢失最少。
在这里,我们使用Rstudio进行数据的PCA分析及绘图。
Packages
这里,我们使用两种包FactoMineR (for the analysis),factoextra (for ggplot2-based visualization).
install.packages("FactoMineR")
install.packages("factoextra")
library(FactoMiner)
library(factoextra)
Data
这里,我把使用的数据做成了一个二维码,扫一扫即可浏览。其中,第一列为样本名,第一行为各个样本的物种组成,数据为物种丰度,最后一列Species为样本分组信息。
Drawing
data<-read.table("clipboard",header=T)#导入复制到剪贴板上的数据
res.pca<-PCA(data[,-60],graph=F)#[,-60]表示去除第60列,因为第60列不是定量数据
fviz_pca_ind(res.pca,
geom.ind = "point", # show points only
col.ind = data$Species, # color by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07","#2297E6"),#根据自己喜好设置颜色
addEllipses = TRUE, # Concentration ellipses
legend.title = "Group")
运行结果如下图所示
上图中含有mean point,如果想去除这些点
fviz_pca_ind(res.pca,
geom.ind = "point", # show points only
col.ind = data$Species, # color by groups
palette = c("#00AFBB", "#E7B800", "#FC4E07","#2297E6"),#根据自己喜好设置颜色
addEllipses = TRUE, # Concentration ellipses
legend.title = "Group",mean.point=F)
再次运行会得到如下图结果