前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据咖课堂:R语言十八讲(十八)—R实现主成分分析

数据咖课堂:R语言十八讲(十八)—R实现主成分分析

作者头像
小莹莹
发布2018-04-25 10:56:41
1.4K0
发布2018-04-25 10:56:41
举报

之前我们在十七讲,将主成分分析的原理和计算过程了解了一遍,今天我们用工具R来实现这一模型.由于R软件中有多个函数可以处理这件事情,所以我们选用两个主要的来实现,一个是R自带的函数princomp和factannal,这个比较基础,但能让我们更加清楚计算的过程,另外一个是扩展包psych提供的函数,非常的方便快捷.

先看数据集:USJudgeRatings,这是美国律师对高等法院的法官评分,从各个方面,分别是,律师与法官接触次数,法官的正直程度,风度,勤勉度,案例水平,决策效率,准备工作,对法律的熟悉度,口头裁决可靠度,书面裁决可靠度,体能,是否值得保留.

按照主成分的计算过程可分为:

(1)标准化数据

(2)计算相关系数矩阵

(3)计算相关系数矩阵的特征值和特征矩阵

(4)主成分贡献率及累计贡献率,可以根据特征值的比率来计算

(5)计算主成分载荷,也就是主成分和原始变量的系数

(6)得到个主成分的值

1.

判断主成分的个数

准则有几条:

A.根据经验与理论进行选择

B.根据累积方差的门槛值,例如选择使累积方差达到80%的主成分个数。

C.根据相关系数矩阵的特征值,选择特征值大于1的主成分。

方法一:由于我们是通过特征值大小来找主成分的次序,所以KAISER-Harris准则保留特征值大于1的主成分—-碎石图

方法二:用相同大小的随机数模拟原始矩阵,若原来矩阵特征值大于模拟的相应平均特征值则主成分保留.

install.packages("psych") library(psych) fa.parallel(USJudgeRatings[,-1],fa="pc",n.iter = 100,show.legend = F) abline(h=1,col="green")

其中绿线表示特征值=1,那么大于1的只有一个主成分.

而红色虚线表示平行分析,只有一个主成分大于模拟数据的特征值.

2.

提取主成分

principal(as.matrix(USJudgeRatings[,-1]),nfactors = 1,scores = T)

其中PC1表示主成分1,下面的值表示与各个变量的相关系数.

h2表示主成分对每个变量的方差解释度.

u2表示主成分无法对变量的方差解释比例.

ss loading与主成分相关联的特征值.

proportion var表示 主成分的累积解释程度.

3.

主成分旋转

将一些列成分载荷阵变得更容易解释,通常是正交旋转,和斜交旋转.

此例 的结论就是,选取一个主成分,能对数据集的解释比例达到92%.

ppv原创文章,未经允许禁止转载

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PPV课数据科学社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档