R语言也有“一步到位”的函数,如prcomp()和princomp(),基本上都是输入数据直接出结果。为了理解PCA的原理,我们利用自编函数的方法进行学习。
主成分分析详解
主成分分析过程分解
1.数据标准化
为了统一数据的量纲并对数据进行中心化,在主成分分析之前往往需要对原始数据进行标准化。下面以R语言自带的iris范例数据集为例,探索一下主成分分析的具体过程。
#将R自带的范例数据集iris储存为变量data;
data<-iris
head(data)
#对原数据进行z-score归一化;
dt<-as.matrix(scale(data[,1:4]))
head(dt)
2.计算相关系数(协方差)矩阵
既然主成分分析主要是选取解释变量方差最大的主成分,故先需要计算变量两两之间协方差,根据协方差与方差的关系,位于协方差矩阵对角线上的数值即为相应变量的方差。此外,由于对数据进行了Z-score归一化(变量的均值为0,标准差为1);因此,根据相关系数的计算公式可知,此时相关系数其实等于协方差。
#计算相关系数矩阵;
rm1<-cor(dt)
rm