如何用R语言实现主成分分析

发布时间:2021-11-22 11:05:43 作者:柒染
来源:亿速云 阅读:925

这期内容当中小编将会给大家带来有关如何用R语言实现主成分分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

建议大家直接采用R语言实现主成分分析,今天先送上一枚案例。

使用R语言自带USJudgeRatings法官综合素质评分数据,每位法官均有12项维度打分,我们觉得用12个指标评价一位法官过于复杂了,现在请对12个维度打分变量进行降维处理,造几个主成分来用于综合评价。

数据如下:

如何用R语言实现主成分分析

加载包:

library(psych)

画出含平行分析的碎石图:


fa.parallel(USJudgeRatings, fa = "pc", n.iter = 100, show.legend = TRUE, main = 'Scree plot with parallel analysis')

如何用R语言实现主成分分析

此图告诉我们似乎是提取1个主成分。判断主成分个数的经验和方法不只是这一个,我觉得只提取1个主成分的话有些偏执,可以考虑多提1个,共提取2个主成分进行考察。

接下来开始主成分分析,暂不旋转:


USJ.pc<-principal(USJudgeRatings,nfactors=2,rotate = "none")

如何用R语言实现主成分分析

提取到两个主成分PC1、PC2,特征值分别为10.13、1.10,均大于1,以特征值为参考的话,提取前2个主成分尚可。方差贡献比例分别为84%、9%,累积方差贡献比例94%,一般认为大于80%,即可认为主成分有较大代表性。

从累积方差贡献,特征值的表现来看,提取2个主成分没问题。

12个指标和PC1、PC2交叉的数字即为载荷,从载荷的分布来看,可以比较轻松的划分各指标与主成分的归属,比如PC2在指标“CONT”上的载荷明显大于其他,所以"CONT"是PC2的主要代表变量,而其他变量在PC1的载荷均较大,所以PC1是一个一般性的综合成分。鉴于此,不做旋转处理是可以的,不影响对主成分核心含义的提炼。

和SPSS主成分的结果对比一下,主成分特征值、方差贡献比例完全一致。

如何用R语言实现主成分分析

再对比一下SPSS输出的载荷矩阵,也是一致。

如何用R语言实现主成分分析

如果觉得我表述不清的话,那我们绘制指标变量与主成分载荷图,直观看一下效果。


fa.diagram(USJ.pc,simple=TRUE)

如何用R语言实现主成分分析

效果很直观,就不用文字多说了。

执行到此处,我们已经确认12个维度指标变量,提取前2个成分作为主成分是可以的。

接下来,我们需要计算每个主成分的得分了。


USJ.spc<-principal(USJudgeRatings,nfactors=2,rotate = "none",scores = TRUE)


head(USJ.spc$scores)

如何用R语言实现主成分分析

对主成分得分变量的使用,通常是直接用于从高到底排序,排名靠前的法官则在该主成分维度上表现突出。或者综合2个主成分得分变量,构造一个综合得分进行评价。

上述就是小编为大家分享的如何用R语言实现主成分分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. 如使用JavaScript实现抖音罗盘时钟
  2. 如何用R语言数据合并一行

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

r语言

上一篇:JSP语法的示例分析

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》