登录
首页精彩阅读非常简单而又非常完整的R语言主成分分析实例
非常简单而又非常完整的R语言主成分分析实例
2018-03-04
收藏
非常简单而又非常完整的R语言主成分分析实例
本篇文章不讲有关主成分分析的理论知识,只讲实际操作。
实例:(中学生身体四项指标的主成分分析)
在某中学随机抽取某年级30名学生,测量其身高(X1)、体重(X2)、胸围(X3)和坐高(X4),数据如下。试对这30名中学生身体四项指标数据做主成分分析

这些数据保存保存在students_data.csv中,该文件中的部分数据截图如下:

现在开始做主成分分析
第一步:将students_data.csv中的数据读入到程序中
data <- read.csv('D:/students_data.csv', header = T)   
注:header = T表示将students_data.csv中的第一行数据设置为列名,这种情况下,
students_data.csv中的第二行到最后一行数据作为data中的有效数据。header = F
表示不将students_data.csv中的第一行数据设置为列名,这种情况下,students_data.csv
中的第一行到最后一行数据作为data中的有效数据。
第二步:进行主成分分析
student.pr <- princomp(data, cor = T)
注:cor = T的意思是用相关系数进行主成分分析。
第三步:观察主成分分析的详细情况
summary(student.pr, loadings = T)
执行完这一步的具体结果如下:

说明:结果中的Comp.1、Comp.2、Comp.3和Comp.4是计算出来的主成分,Standard deviation代
表每个主成分的标准差,Proportion of Variance代表每个主成分的贡献率,Cumulative
Proportion代表各个主成分的累积贡献率。每个主成分都不属于X1、X2、X3和X4中的任何一个。
第一主成分、第二主成分、第三主成分和第四主成分都是X1、X2、X3和X4的线性组合,也就是说最原始
数据的成分经过线性变换得到了各个主成分。然而并不是每个主成分的作用都非常关键,因此,我们只选
择作用比较关键的几个,一般地,选择累积贡献率达到八成的前几个主成分即可(这个实例中我们选择前
两个,毕竟第二主成分的贡献率也比较大)。
    接下来,在得到主成分的基础上进行回归也好进行聚类也好,就不再使用原始的X1、X2、X3和X4
了,而是使用主成分的数据。但现在还没有各个样本的主成分的数据,所以,最后一步就是得到各个样本主成分的数据。
第四步:计算得到各个样本主成分的数据
pca_data <- predict(student.pr)
得出的结果如下:

我们只保留Comp.1和Comp.2的数据即可。
结束:到此,大功告成,接下来可以做自己想做的事情了。



数据分析咨询请扫描二维码

客服在线
立即咨询