资源描述:
《主成分分析及代码实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、主成分分析(principalcomponentanalysis)是将多指标化为少数几个综合指标的一种统计分析方法,这种降维的技术而生成的主成分,能够反映原始变量的绝大部分信息,通常表示为原始变量的线性组合。下面主要介绍在R中的主成分分析(1)概念:①主成分的均值和协方差阵②主成分的总方差贡献率及累计贡献率③原始变量与主成分变量之间的相关系数④m个主成分对原始变量的贡献率⑤原始变量对主成分的影响(2)从相关矩阵或者协方差矩阵出发求主成分①变量的标准化scale()(3)在R中,可以用stats包中的prcomp函数及prin
2、cmp()函数进行主成分分析。##类'formula'的S3方法prcomp(formula,data=NULL,subset,na.action,...)##DefaultS3method:prcomp(x,retx=TRUE,center=TRUE,scale=FALSE,tol=NULL,...)参数介绍:formula:在公式方法中设定的没有因变量的公式,用来指明数据分析用到的数据框汇中的列data:包含在formula中指定的数据的数据框对象,subset:向量对象,用来指定分析时用到的观测值,其为可选参数na.a
3、ction:指定处理缺失值的函数x:在默认的方法下,指定用来分析的数值型或者复数矩阵retx:逻辑变量,指定是否返回旋转变量center:逻辑变量,指定是否将变量中心化scale:逻辑变量,指定是否将变量标准化tol:数值型变量,用来指定精度,小于该数值的值将被忽略。princomp(formula,data=NULL,subset,na.action,...)##DefaultS3method:princomp(x,cor=FALSE,scores=TRUE,covmat=NULL,subset=rep_len(TRUE,
4、nrow(as.matrix(x))),...)##S3methodforclass'princomp'predict(object,newdata,...)参数介绍:formula:是没有相应变量的公式cor:逻辑变量,若为cor=T表示用样本的相关矩阵R作主成分分析,cor=F,表示用样本的协方差矩阵s作为主成分分析covmat:协方差矩阵,如果数据不用x提供,可由协方差提供。(4)可以用summary()函数查询关于每个主成分的重要信息summary(object,loadings=F,cutoff=0.1,…)#ob
5、ject是由prcomp得到的对象,loadings是逻辑变量,当loadings=T表示显示loadings的内容,loadings=F是表示不显示(5)使用loadings()函数查看每个变量对主成分的贡献度loadings(x)#x是由函数prcomp()或factanal()得到的对象(6)针对princomp()对象的plot方法。该方法可以绘制展示每个主成分与其自身方差贡献度相关性的悬崖碎石图。plot()(7)用双标图将主成分可视化,画出数据关于主成分的散点图和原坐标在主成分下的向量biplot(model,c
6、hoices=1:2,scale=1,pc.biplot=F,…)#model是由prcomp()得到的对象,choices是选择的主成分,缺省值是第1,第2主成分。pc.biplot是逻辑变量,缺省值为F,当pc.biplot=T,用Gabriel提出的方法绘图。(8)predict函数是预测主成分的值,predict(object,newdata,…)#object是由prcomp()得到的对象,newdata是由预测值构成的数据框,当newdata缺省时,预测已有数据的主成分值。实例:中学生身体四项指标的主成分分析30
7、名学生,测量其身高(X1)、体重(X2),胸围(X3)和坐高(X4)。对这30名中学生身体四项指标数据做主成分分析。解:用数据框形式输入数据,用prcomp()做主成分分析,由分析,选择相关矩阵作为主成分分析更为合理,因此,cor=T。最后,用summary()列出主成分分析的值,这里选择loadings=T。数据:data数据框>data###作主成分分析利用函数princomp(),并显示分析结果>data.pr<-princomp(data,cor=T)>summary(data.pr,loadings=T)Impor
8、tanceofcomponents:Comp.1Comp.2Comp.3Comp.4Standarddeviation1.87349840.558876430.334944350.25587705ProportionofVariance0.87749910.078085720.028046