PCA in R
概述
PCA——primary component analysis 主成分分析。
PCA主成分分析可视化有多种方法,包括,。其中fviz_pca{factoextra}函数是其中最常用的一种,该函数的可视化是基于ggplot2开发,且返回值为一个ggplot对象。
fviz_pca函数有三个主要分支:
fviz_pca_ind() #对个体进行可视化
fviz_pca_var() #对变量进行可视化
fviz_pca_biplot() #同时对个体和变量进行可视化。
在平时数据探索与分析中,应用最多的为对个体PCA结果的可视化,所以下面的笔记只包含对fviz_pca_ind()的参数使用介绍。
数据准备
所有的可视化都是基于数据的,是对数据的可视化展示。fviz_pca_ind()函数便是对PCA分析结果的可视化展示。
这里的学习是以iris数据集作为例子的,首先对该数据集进行PCA分析,获得PCA结果数据。代码如下:
data(iris)
res.pca <- prcomp(iris[, -5], scale = TRUE)
res.pca便是储存了iris数据集PCA分析结果的变量,以下分析基于该变量代表的数据。
可视化参数调整
基本图形
p1 <- fviz_pca_ind(res.pca, repel = TRUE) #上面的图
p2 <- fviz_pca_ind(res.pca, repel = FALSE) #下面的图
### 以下两张图相当于最原始的可视化图了:横纵坐标,配色默认黑白,点和文字都显示。
另外,仔细观察两张图可以发现,下面的图文字对点是就近标注的,直接导致点与文字及文字与文字的大量重叠。而上面的图的作图函数通过设置参数 repel =T 完美的避免了。【repel =T 可以解决作图重叠的问题】是不是有点类似geo_jitter呢
点和文字的显示问题
其实多数情况下,尤其是样本量特别多的时候,是不会全部显示点的标注文字的,所以设置什么参数可以使文字不显示呢?答案是……geom = 。
还记得ggplot函数作图吗,geom_<function>就是指定几何对象类型的哦。而fviz_pca()函数又是基于ggplot2开发的哦。。。所以这里设置几何显示,通过geom参数设置也就很好理解了。
fviz_pca_ind(res.pca, geom = "point") #只显示点
设置颜色
颜色的设置通常是按组来进行设置啦。思路:先通过参数habillage指定按组分配颜色,然后通过参数palette人工设置每个组的颜色。
p <- fviz_pca_ind(res.pca, geom = 'point', habillage=iris$Species, palette = "Dark2" )
设置置信椭圆
颜色的设置通常是按组来进行设置啦。思路:先通过参数habillage指定按组分配颜色,然后通过参数palette人工设置每个组的颜色。addEllipses=TRUE, ellipse.level=0.95
fviz_pca_ind(res.pca, geom='point', habillage=iris$Species, addEllipses=TRUE, ellipse.level=0.95, palette = "Dark2")
总结
绘图逻辑及绘图模板总结如下:
fviz_pca_ind(<PCA结果>, <设置显示点>, <指定分组并按组分配颜色>, <添加椭圆并设置置信水平>,<手动指定各组颜色>)
fviz_pca_ind(res.pca, geom='point', habillage=iris$Species, addEllipses=TRUE, ellipse.level=0.95, palette = "Dark2")