• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言主成分分析

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
head(swiss)#查看数据

cor(swiss)#查看相关性矩阵


方阵中绝对值最小的是0.06085861,比0.05大,因此swiss中变量相互之间均有或强或弱的相关关系,这份数据适合做主成份分析。

由于变量的量纲不同会使主成份得分系数的可解释性变差,使结果受到量纲大的变量影响,而忽略量纲较小的变量,所以对数据进行标准化,使每个变量都服从均值为0,方差为1的正态分布

std.swiss<-scale(swiss[1:6])

head(std.swiss)


p<-princomp(std.swiss,cor=TRUE)#构建主成份分析模型,cor为true表示用样本的相关矩阵做主成分分析,默认false则使用样本的协方差矩阵做主成分分析

summary(p,loadings=TRUE)


其中importance of components中的standard deviation行给出了6个主成分的标准差;proportion of variance行给出了主成份的方差贡献率;cumulative proportion行给出了方差累计贡献率。

方差贡献率用于体现每个主成分对原始数据中信息的解释能力。第一个主成分的方差贡献率是0.5332928,即第一个主成分能够解释原数据中53.32%的信息,第二个主成分能解释原数据19.8%的信息,....,六个加起来解释能力为百分之百

由于loadings设置为真,所以R同时返回各个主成分对应的系数,根据给出的系数,列出两个主成分的表达式:

Y2=0.300*fer-0.412*agr+0.125*exa+0.179*rdu+0.146*cat+0.811*inf

Y1=-0.457*fer-0.424*agr+0.51*exa+0.454*edu-0.35*cat-0.15*inf


screeplot(p,type='lines')#画出碎石图


从图中可以看出,从第四个变量之后,斜率开始趋于0,所以,主成分取2~4个是比较合适的


pre<-predict(p)#计算主成分得分
head(pre)

y<-eigen(cor(std.swiss))#计算特征值和特征向量
y
y1<-y$values[1]
y2<-y$values[2]
y3<-y$values[3]
y4<-y$values[4]
scores<-(y1*pre[,1]+y2*pre[,2]+y3*pre[,3]+y4*pre[,4])/(y1+y2+y3+y4)
head(scores)#将主成分得分与样本数据的特征向量做内积可得综合得分,由于前四个变量可解释数据的大部分信息,故选前四个为主成分计算


courtelary城市得分最高,franches-mnt得分最低,故前者发展的最好,后者最差



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
R语言鸢尾花iris数据集的层次聚类分析发布时间:2022-07-18
下一篇:
R语言 、Excel哪个更能胜任数据分析?发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap