当前位置:   article > 正文

基于R语言的主成分分析(附代码)_r语言主成分分析

r语言主成分分析

一、主成分分析简介

        主成分分析也成为主分量分析,在实际问题中变量之间可能存在一定的相关性。因此若可以使用个数较少但是保留了原始变量大部分信息的几个不相关的综合变量来代替原来的较多变量,就能简化数据,从而对原来复杂的数据关系进行简明有效的统计分析。其本质是“有效降维”,既要减少变量个数,又不能损失太多信息。

        当一个变量住区一两个数据时提供的信息非常有限,变量的变异性越大,说明它提供的信息量越。主成分分析中的信息,就是变量的变异性,用标准差或者方差来表示。

1.1主成分的含义

        以二维的情景为例,设总体为(X_{1},X_{2},...,X_{p}),其期望为\mu协方差矩阵为\sum。欲将二维空间的点投影到某个一维方向的eq?y_%7B1%7D上,则这个方向代表了数据变化最大的方向,成为第一主成分。定义eq?y_%7B2%7D为与第一主成分垂直,称为第二主成分,要求其包含第一主成分未包含的信息。同理可以推广到高维的情况,设eq?y_%7B1%7D%2Cy_%7B2%7D%2Cy_%7B3%7D%2Cy_%7B4%7D.....y_%7Bp%7D为X的主成分。则Var(y_{i})={a_{i}}'\sum{a_{i}}其中a_{i}y_{i}关于x_{i}线性组合的系数向量。最后从

全部主成分中按照方差从大到小挑选出能保留大部分信息且互不相关的部分主成分。

1.2主成分的数理性质

        设\lambda_{1},...,\lambda_{p}是协方差矩阵的p个特征值,e_{1},...e_{p}为对应的单位正交特征向量

y_{i}=e_{i1}x_{i}+...+e_{ip}x_{p}。也就是说,主成分y_{i}的组合系数是对于于协方差矩阵的第i大特征值\lambda_{i}的单位正交特征向量,而且y_{i}的方差等于\lambda_{i},不同的主成分之间相互独立。

        进行主成分分析的主要目的是有效降维,减少变量的个数。结合主成分的相关性质故可采用指标\omega _{i}=\frac{\lambda_{i}}{\sum{\lambda_{j}}}来度量主成分概括原始变量信息多少的程度,称其为方差贡献率。

        为了消除单位的不同可能带来的影响,常常需要对各原始变量作标准处理,即令,

\hat{x_{i}}=\frac{x_{i}-E(x_{i})}{\sqrt{Var(x_{i})}}

标准化后的总体就是原总体的相关矩阵\rho。注意在实际问题中往往需要用样本数据来估计。

二、案例分析

  1. ######读入数据####################################
  2. > data<-read.csv('ex6.7.csv',header = 1)
  3. > da=data[,-1] #第一列为样本名
  4. > rownames(da)=data[,1] #用data的第一列为数据重新命名
  5. > R=round(cor(da),3) #样本相关系数矩阵
  6. > R
  7. x1 x2 x3 x4 x5 x6 x7 x8
  8. x1 1.000 0.111 0.658 0.500 0.572 0.436 0.103 0.660
  9. x2 0.111 1.000 0.257 0.561 0.431 0.280 0.498 0.558
  10. x3 0.658 0.257 1.000 0.760 0.738 0.797 0.523 0.837
  11. x4 0.500 0.561 0.760 1.000 0.777 0.707 0.599 0.782
  12. x5 0.572 0.431 0.738 0.777 1.000 0.729 0.541 0.773
  13. x6 0.436 0.280 0.797 0.707 0.729 1.000 0.647 0.757
  14. x7 0.103 0.498 0.523 0.599 0.541 0.647 1.000 0.655
  15. x8 0.660 0.558 0.837 0.782 0.773 0.757 0.655 1.000
  16. ####利用样本相关系数矩阵作主成分分析计算主成分载荷矩阵#####
  17. > PCAex6.7=princomp(da,cor=T)
  18. > summary(PCAex6.7,loadings=T)
  19. Importance of components:
  20. Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
  21. Standard deviation 2.28 1.072 0.8311 0.5664 0.4875 0.4480 0.3706 0.25794
  22. Proportion of Variance 0.65 0.144 0.0863 0.0401 0.0297 0.0251 0.0172 0.00832
  23. Cumulative Proportion 0.65 0.793 0.8796 0.9197 0.9494 0.9745 0.9917 1.00000
  24. Loadings:
  25. Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
  26. x1 0.279 0.594 0.404 0.356 0.206 0.107 0.384 0.281
  27. x2 0.241 -0.596 0.615 -0.109 -0.317 0.308
  28. x3 0.390 0.260 -0.166 -0.425 -0.647 0.382
  29. x4 0.392 0.115 -0.426 -0.420 0.574 0.321 -0.190
  30. x5 0.386 -0.564 0.675 -0.264
  31. x6 0.375 -0.465 -0.140 -0.160 -0.609 0.466
  32. x7 0.312 -0.459 -0.429 0.447 0.329 0.391 0.195
  33. x8 0.414 0.122 0.383 -0.176 -0.190 -0.774

  三、结果分析      

  1. #####可视化结果####################
  2. screeplot(PCAex6.7,type="barplot")#碎石图,用直方图类型
  3. > load=loadings(PCAex6.7)#提取主成分载荷矩阵
  4. > plot(load[,1:2],xlim=c(-0.5,0.7),ylim=c(-0.5,0.6))#用载荷矩阵前两列做散点图
  5. > abline(h=0,v=0)##划分象限
  6. A=round(PCAex6.7$scores,3)#计算主成分,取三位小数
  7. > B=round(apply(A[,1:3], 1, crossprod),2) #按行加和前3个主成分上载荷平方得综合得分
  8. > cbind(A,B,rank(B)) #按列合并主成分的分、综合得分和排序
  9. > biplot(PCAex6.7,scale=0.5)#关于前两个主成分的散点图

前两个个主成分的累计贡献率为79.4%,前三个主成分的累计方差贡献率超过了80%,故主成分的个数为3。

本文的主要内容来源于费宇先生所作《多元统计分析——基于R》一书,笔者才疏学浅多有疏漏,还望读者诸君批评指正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/94176
推荐阅读
相关标签
  

闽ICP备14008679号