R语言中PCA方法实现

 

   Principal component analysis(PCA)主成分分析是一种重要的维度归约方法,R语言的基础库stats提供了prcomp函数进行主成分分析,同时也可根据主成分分析的定义利用协方差矩阵求出主成分,主要是求出特征值和相应的单位正交变换矩阵。

   R语言代码如下:

rm(list = ls())    #清除环境变量的干扰
indataraw <- read.csv("testdata.csv", sep = ",", na.strings = "", header = T) 
indata <- as.matrix(indataraw)  #将列表框数据转换为矩阵数据

#1.利用函数prcomp进行主成分分析
pca <- prcomp(formula = ~A + B + C + D + E, x = indata, retx = T)  
#在主成分分析中,各主成分的方差等于相应的特征值
pca_eigen_values <- pca$sdev^2   #通过pca求出的特征值

#2.利用主成分分析的定义求解主成分
cov_matrix <- cov(indata, indata, use = "everything", method = "pearson") #计算协方差矩阵
#计算协方差矩阵的特征值和特征向量
eigen_result <- eigen(cov_matrix, symmetric = T, only.values = F, EISPACK = F) 
eigen_values <- eigen_result$values  #获取特征值
eigen_vectors <- eigen_result$vectors #获取特征向量

    以上代码运行结果如下:
R语言中PCA方法实现_第1张图片

    结果显示了两种方法求出的特征值和变换矩阵,两种方法求出的值是相等的。

你可能感兴趣的:(R,PCA,R)