R语言机器学习入门——21

232 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第15天,点击查看活动详情

项目实操——因子分析

探索性因子分析法(exploratory factor analysis),简称EFA,是一系列用来发现一组变量的潜在结构的方法,它通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、显式的变量间的关系。

下面列举一个因子分析的案例:

这里我们使用factanal()函数进行因子分析,使用ability.cov数据集进行演示:

首先对数据集进行处理,利用option()函数将数据保留两位小数

options(digits = 2)
covariances <- ability.cov$cov

#定义covariences变量,取数据集中的cov列,因为ability.cov数据集是一个列表

转化为系数矩阵(原来表里面的数据是方差,然后用cov2cor()函数转化为相关系数):

correlations <- cov2cor(covariances)

同样使用fa.parallel()函数判断参与分析的因子个数,这里我们把选项参数fa设置为‘Both’表示即研究主成分也研究因子分析:

fa.parallel(correlations,fa="both",n.obs = 112,n.iter = 100)

n.obs是观测的数量,也就是样本数,可以通过abilitycov$n.cobs计算得出

观察图中结果,显示要提取两个因子。FA分析是看特征值数大于0,pc看特征值数大于1

fa <- fa(correlations,nfactors = 2,rotate = "none",fm="pa")

#nfactors是指因子数,rotate是指需不需要旋转,fm是用于进行因子分析的方法

正交旋转法:两个因子之间不相关,斜交旋转法:两个因子之间相关

(后面的多看书-R语言实战)