基于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}

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

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。注意在实际问题中往往需要用样本数据来估计。

二、案例分析

######读入数据####################################
> data<-read.csv('ex6.7.csv',header = 1)
> da=data[,-1] #第一列为样本名
> rownames(da)=data[,1] #用data的第一列为数据重新命名
> R=round(cor(da),3) #样本相关系数矩阵
> R
      x1    x2    x3    x4    x5    x6    x7    x8
x1 1.000 0.111 0.658 0.500 0.572 0.436 0.103 0.660
x2 0.111 1.000 0.257 0.561 0.431 0.280 0.498 0.558
x3 0.658 0.257 1.000 0.760 0.738 0.797 0.523 0.837
x4 0.500 0.561 0.760 1.000 0.777 0.707 0.599 0.782
x5 0.572 0.431 0.738 0.777 1.000 0.729 0.541 0.773
x6 0.436 0.280 0.797 0.707 0.729 1.000 0.647 0.757
x7 0.103 0.498 0.523 0.599 0.541 0.647 1.000 0.655
x8 0.660 0.558 0.837 0.782 0.773 0.757 0.655 1.000


####利用样本相关系数矩阵作主成分分析计算主成分载荷矩阵#####
> PCAex6.7=princomp(da,cor=T)
> summary(PCAex6.7,loadings=T)
Importance of components:
                       Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7  Comp.8
Standard deviation       2.28  1.072 0.8311 0.5664 0.4875 0.4480 0.3706 0.25794
Proportion of Variance   0.65  0.144 0.0863 0.0401 0.0297 0.0251 0.0172 0.00832
Cumulative Proportion    0.65  0.793 0.8796 0.9197 0.9494 0.9745 0.9917 1.00000

Loadings:
   Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
x1  0.279  0.594  0.404  0.356  0.206  0.107  0.384  0.281
x2  0.241 -0.596  0.615        -0.109 -0.317         0.308
x3  0.390  0.260 -0.166        -0.425        -0.647  0.382
x4  0.392         0.115 -0.426 -0.420  0.574  0.321 -0.190
x5  0.386               -0.564  0.675        -0.264       
x6  0.375        -0.465 -0.140 -0.160 -0.609  0.466       
x7  0.312 -0.459 -0.429  0.447  0.329  0.391         0.195
x8  0.414         0.122  0.383        -0.176 -0.190 -0.774


  三、结果分析      

#####可视化结果####################
screeplot(PCAex6.7,type="barplot")#碎石图,用直方图类型
> load=loadings(PCAex6.7)#提取主成分载荷矩阵
> plot(load[,1:2],xlim=c(-0.5,0.7),ylim=c(-0.5,0.6))#用载荷矩阵前两列做散点图
> abline(h=0,v=0)##划分象限

A=round(PCAex6.7$scores,3)#计算主成分,取三位小数
> B=round(apply(A[,1:3], 1, crossprod),2) #按行加和前3个主成分上载荷平方得综合得分
> cbind(A,B,rank(B)) #按列合并主成分的分、综合得分和排序
> biplot(PCAex6.7,scale=0.5)#关于前两个主成分的散点图

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

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年12月19日
下一篇 2023年12月19日

相关推荐