前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >R语言进阶之因子分析

R语言进阶之因子分析

作者头像
生信与临床
发布于 2020-08-05 09:24:28
发布于 2020-08-05 09:24:28
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

在介绍因子分析之前,我想和大家解释一下主成分分析和因子分析的区别:

(1)主成分分析主要是对原始变量进行线性组合,不涉及模型与假设,而因子分析则需要构造一个因子模型并伴随相关假设;

(2)主成分分析的解是唯一确定的,而因子分析的解往往不唯一;

(3)最后,因子分析对结果的解释效果往往比主成分分析更好,更具有现实意义。

我们可以使用R语言的内置函数factanal()来进行因子分析,该函数使用的是极大似然估计法,我们使用mtcars数据集作为示例数据。

1. 探索性因子分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mydata <- mtcars 
# 极大似然因子分析
# 提取2个因子,使用最大方差法旋转
fit <- factanal(mydata, 3, rotation="varimax") # 第2个参数是提取的因子个数
print(fit, digits=2, cutoff=0.3, sort=TRUE) # 输出结果

从上面的结果可以看到,Loadings部分第1个因子主要反映的是前7项变量的共同特征,而第2个因子主要反映后5项变量的特征,并且这两个因子的累计方差贡献率达到72%。另外,这三个因子是否能充分解释这些变量特征的假设检验结果P值为0.205 (大于0.05),说明这三个因子足以解释这些变量了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load <- fit$loadings[,1:2]
plot(load,type="n") # 绘图
text(load,labels=names(mydata),cex=1) # 添加变量名

从上图可以看出,不同的变量可以用这两个因子进行区分。

另外,“psych”包的fa()函数也提供了各种相关的因子分析方法,使用起来十分方便,包括主轴因子分析(principal axis factor analysis):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 主轴因子分析
library(psych)
r <- corr.test(mydata)$r # 提取各个变量之间的相关系数矩阵
fit2 <- fa(r, nfactors=3, rotate="varimax",fm="pa") # 指定因子个数,旋转方法和计算方法 
fit2 # 输出结果

上图的结果解释和之前的一样,这里就不赘述了!

2. 确定要提取的因子数目

探索性因子分析最关键的就是确定提取的因子个数,这里R包“nFactors”就提供了一套函数用于辅助确定因子个数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 确定应提取的因子个数
library(nFactors)
ev <- eigen(cor(mydata)) # 获取特征值
ap <- parallel(subject=nrow(mydata),var=ncol(mydata),
  rep=100,cent=.05) # subject指样本个数,var是指变量个数
nS <- nScree(x=ev$values, aparallel=ap$eigen$qevpea) # 确定探索性因子分析中应保留的因子
plotnScree(nS) # 绘制碎石图

该图的横坐标反映的的是各个因子,纵坐标对应各个因子的特征值,可以看出从第4个因子开始,它们的特征值几乎就没有变化了。所以从上图不难看出,选择三个因子是最佳的。

关于探索性因子分析的内容就讲解到这里,感兴趣的朋友可以学习一下验证性因子分析的相关内容。

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

本文分享自 生信与临床 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言数据分析与挖掘(第七章):因子分析
因子分析(factor analysis, 简称FC)又称因素分析,基于相关关系而进行的数据分析技术,是一种建立在众多的观测数据的基础上的降维处理方法。其主要目的是探索隐藏在大量观测数据背后的某种结构,寻找一组变量变化的共同因子,将相同本质的变量归入一个因子,可减少变量的数目,还可检验变量间关系的假设。
DoubleHelix
2019/12/17
5.8K0
R语言数据分析与挖掘(第七章):因子分析
因子分析的一个小例子
今天做了下因子分析中的东东,本来想找一些公共网站的数据,限于时间和要做一些数据整理,时间来不及,就找了一个现成的数据源。
jeanron100
2019/06/05
8070
因子分析的一个小例子
用R语言对城管事件数据分析
作者:夏尔康 https://ask.hellobi.com/blog/xiaerkang/3975 这次使用主成分分析主要目的并不是降维,而是分析城管数据中的事件类别之间是否存在关系,当然,城管事件
机器学习AI算法工程
2018/03/14
7510
用R语言对城管事件数据分析
R语言主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更小 的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。 1.R中的主成分和因子分析 R的基础安装包中提供了PCA和EFA的函数,分别为princomp ()和factanal() psych包中有用的因子分析函数 函数描述 principal()含多种可选的方差放置方法的主成分分析fa()可用主轴、最小残差、加权
机器学习AI算法工程
2018/03/13
2.7K0
R语言主成分和因子分析
R语言实现主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。 探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更小 的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。 1.R中的主成分和因子分析 R的基础安装包中提供了PCA和EFA的函数,分别为princomp ()和factanal() psych包中有用的因子分析函数 函数描述 principal()含多种可选的方差放置方法的主成分分析fa()可用主轴、最小残差、加权最
机器学习AI算法工程
2018/03/14
2.5K0
R语言实现主成分和因子分析
用Python实现因子分析
因子分析(factor analysis)因子分析的一般步骤factor_analyzer模块进行因子分析使用Python实现因子分析初始化构建数据将原始数据标准化处理 X计算相关矩阵C计算相关矩阵C的特征值 和特征向量 确定公共因子个数k构造初始因子载荷矩阵A建立因子模型将因子表示成变量的线性组合.计算因子得分.
用户3577892
2020/06/10
6.7K0
R语言 主成分分析PCA(绘图+原理)
PCA 是一种较为常用的降维技术,PCA 的思想是将n维特征映射到k维上,这k维是全新的正交特征。这k维特征称为主元,是重新构造出来的k维特征。在 PCA 中,数据从原来的坐标系转换到新的坐标系下,新的坐标系的选择与数据本身是密切相关的。其中,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴选取的是与第一个坐标轴正交且具有最大方差的方向,依次类推,我们可以取到这样的k个坐标轴。
拴小林
2021/05/31
14.1K0
R语言 主成分分析PCA(绘图+原理)
数据代码分享|R语言主成分(PCA)、主轴因子分析(PA)员工满意度调查数据可视化
在现代组织管理中,员工的满意度对于组织的运行和绩效起着至关重要的作用。了解员工的满意度水平以及影响满意度的因素对于提高员工工作动力、维护组织稳定与发展具有重要意义。
拓端
2023/07/06
3770
一文带你详细了解因子分析(长文预警)
因子分析是一种描述原始变量或原始样本之间相关关系的一种手段,所谓因子指的是多个错综复杂的自变量经过有效手段抽取到少数几个综合计算变量的代称,它是一种多变量统计分析方法,通过因子得分确定较高得分的公共因子载荷矩阵进行对原始变量的代替(相当于降维),出发点是原始变量的相关系数矩阵
用户7506105
2021/08/09
4.1K0
R语言进阶之主成分分析
‍今天我们将要学习R语言进阶中最重要的统计内容---主成分分析,它在我们的研究中几乎是无处不在,应用最广的就是将主成分放入回归模型进行拟合,用于矫正相关的混杂因素。
生信与临床
2020/08/05
1.4K0
R语言从入门到精通:Day14(PCA & tSNE)
主成分分析(Principle component analysis, PCA)前面我们已经用两期教程跟大家讲过理论和实际绘图(在线主成分分析Clustvis和主成分分析绘图)。今天,我们就从PCA的数理统计层面入手,去讲讲完整的PCA应该怎么操作。
用户6317549
2019/11/11
1.3K0
R语言从入门到精通:Day14(PCA & tSNE)
R语言主成分分析的案例
原文:http://www.flybi.net/blog/dataman/3073 作者 : 面包君 我爱数据分析网创始人,阿里招聘&资深数据分析,动漫爱好者 R语言也介绍到案例篇了,也有不少同学反馈说还是不是特别明白一些基础的东西,希望能够有一些比较浅显的可以操作的入门。其实这些之前在SPSS实战案例都不少,老实说一旦用上了开源工具就好像上瘾了,对于以前的SAS、clementine之类的可视化工具没有一点感觉了。本质上还是觉得要装这个、装那个的比较麻烦,现在用R或者python直接简单安装下,导入
机器学习AI算法工程
2018/03/13
3.7K0
R语言主成分分析的案例
R语言多元分析系列
系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是在处理观测数目小于变量数目时无法发挥作用,
机器学习AI算法工程
2018/03/12
1.3K0
R语言因子分析
因子分析可以看做是主成分分析的进一步扩展,主成分分析重点在综合原始变量的信息,而因子分析重在解释原始变量之间的关系。
医学和生信笔记
2023/02/14
5240
R语言因子分析
R in action读书笔记(19)第十四章 主成分和因子分析
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法。它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显式的变量间的关系。
统计学家
2019/04/10
1K0
R in action读书笔记(19)第十四章 主成分和因子分析
数据分析上千部动漫作品
有这样一个需求,是需要根据一些动漫的信息来做出一些数据分析,大概有1700多部动漫作品,相关的属性有差不多20个。
jeanron100
2019/07/05
7691
数据分析上千部动漫作品
【数据分析 R语言实战】学习笔记 第十章(下)因子分析
与主成分分析一样,因子分析也是一种“降维”的统计方法。它们的出发点都是变量的相关系数矩阵,在损失较少信息的前提下,把多个变量综合成少数几个指标来研究总体各方面信息,并且这少数几个综合变量所代表的信息不能重叠,即变量间不相关。
统计学家
2019/04/10
3.2K0
【数据分析 R语言实战】学习笔记 第十章(下)因子分析
因子分析与主成分分析之间爱恨离愁。FA与FCA
主成分分析和因子分析无论从算法上还是应用上都有着比较相似之处,本文结合以往资料以及自己的理解总结了以下十大不同之处,适合初学者学习之用。 1.原理不同 主成分分析基本原理:利用降维(线性变换)的思想,在损失很少信息的前提下把多个指标转化为几个不相关的综合指标(主成分),即每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,使得主成分比原始变量具有某些更优越的性能(主成分必须保留原始变量90%以上的信息),从而达到简化系统结构,抓住问题实质的目的。 因子分析基本原理:利用降维的思想,由研究原始变量相关
学到老
2018/03/16
2.5K0
因子&对应分析干货实践
通过加载复制开篇名义,本文主要通过案例,借助R来实现因子分析和对应分析的具体实战。小白需要自己补充相关理论知识。
herain
2022/04/27
3250
因子&对应分析干货实践
主成分分析①
principal() 含多种可选的方差旋转方法的主成分分析 fa() 可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析 fa.parallel() 含平行分析的碎石图 factor.plot() 绘制因子分析或主成分分析的结果 fa.diagram() 绘制因子分析或主成分的载荷矩阵 scree() 因子分析和主成分分析的碎石图
用户1359560
2018/08/27
8631
相关推荐
R语言数据分析与挖掘(第七章):因子分析
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文