导读
主成分分析(principal component analysis,PCA)是将多个变量通过线性变换以选出较少个数重要变量的一种多元统计分析方法,是常用的数据降维手段。原先的n个维度通过线性变换,变成了新的n个线性无关的按方差解释度排序的主成分(principal component, PC)。主成分针对的就是方差解释度。
prcomp和 princomp是常见的两个主成分分析函数,且都是R软件自带,不需要额外的包。下面是prcomp做主成分分析的方法。
一、输入数据
1 模拟数据
set.seed(1995)
# 随机种子
data=matrix(abs(round(rnorm(100, mean=1000, sd=500))), 10, 10)
# 随机正整数,20行,20列
colnames(data)=paste("变量", 1:10, sep=".")
# 列名-细菌
rownames(data)=paste("样品", 1:10, sep=".")
2 看看数据分布
plot(density(data))

二、数据标准化
使用z-score 标准化(zero-meannormalization)也叫标准差标准化,减去均值再除以数据的标准差,处理后数据符合标准正态分布,均值为0,标准差为1。
1 标准化处理
R函数:scale(data, center=T/F, scale=T/F)或者scale(data)
参数:center (中心化)将数据减去均值
参数:scale (标准化)在中心化后的数据基础上再除以数据的标准差
参数center scale的默认值都是T
data2=scale(data, center=T, scale=T)
# scale函数进行数据标准化
2 再看数据分布
plot(density(data2))

3 查看样品分布
plot(data2, main="scaled data")
# 这只能看到两个维度

两个变量的二维图
三、主成分分析
1 使用prcomp函数做PCA
data2.pca <- prcomp(data2, center=F, scale=F)
# 已经标准化,不在重复计算,用F
# PCA分析
data2.pca
# 查看PCA结果

图片.png
2 查看结果
summary(data2.pca)
# PCA结果汇总

10个主成分
3 绘制PC1 PC2散点图
plot(data2.pca$x, main="after PCA")
# 绘制PC1 PC2二维图

前两个主成分二维图
参考
PCA的原理和普通实现
