第 4 章 主成分分析
对于主成分分析的解释,维基百科上是这样说的:
主成分分析(英语:Principal components analysis,PCA)是一种统计分析、简化数据集的方法。它利用正交变换来对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principal Components)。具体地,主成分可以看做一个线性方程,其包含一系列线性系数来指示投影方向。PCA对原始数据的正则化或预处理敏感(相对缩放)。
那么我们主要将如何在R
里面实现,在 R base
或者其他各种安装包里面,都包含主成分分析,我们这里主要介绍R base
里面的数据。这里需要用到 prcomp
这个方程来实现。这里我们依然用 iris
数据来举例。主成分分析的数据里面不能出现 factor
或者 character
的形式,一般我们要将所有的 numeric
数据转换为 matrix
形式。
data("iris")
#转换数据
<- as.matrix(iris[-5])
martrix_iris #PCA分析
##可以设置scale. 和center =T, 来对数据进行预处理
<- prcomp(martrix_iris,scale. = T,center = T )
pca1 pca1
## Standard deviations (1, .., p=4):
## [1] 1.7083611 0.9560494 0.3830886 0.1439265
##
## Rotation (n x k) = (4 x 4):
## PC1 PC2 PC3 PC4
## Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863
## Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096
## Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492
## Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971
对PCA结果进行可视化。我们这里ggfortify
安装包来实现,这个安装包是基于 ggplot2
的,所以你的电脑上首先要有ggplot2
这个安装包。
library(ggfortify)
autoplot(pca1,data = iris,col= 'Species',size=2,
loadings =T,loadings.label = TRUE,
frame = TRUE,frame.type='norm',
label = TRUE, label.size = 3
+
)theme_classic()
## Warning: `select_()` was deprecated in dplyr 0.7.0.
## Please use `select()` instead.
你可以根据ggplot
相关设置对图像参数进行修改。