R语言学习记录:因子分析的R实现

本文记录了使用R语言进行因子分析的过程,包括如何利用fa函数进行主成分分析,选择合适的因子数,以及varimax旋转。通过实例解析,展示了因子分析如何帮助解释数据中的变量关系,如经济发达因子和人口规模因子。同时,文章还提供了针对应聘者面试分数的因子分析,定义了进取能干、经验、内在品质、外貌等因子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间: 2018-08-09(学习时间)、2018-08-12(记录时间)
教程:知乎:Learn R | 数据降维之主成分分析(上)Learn R | 数据降维之因子分析(下) 作者:Jason
数据来源:《应用多元统计分析》 王学民 编著 P261-P262 习题8.5、8.6


因子分析

1.因子分析

使用psych包对数据进行因子分析。
其中,fa函数进行主成分分析,fa.parallel函数生成碎石图。

fa(r, nfactors=, n.obs=, rotate=, scores=, fm=) r:相关系数矩阵或原始数据矩阵,
nfactors:设定主提取的因子数(默认为1) n.obs:观测数(输入相关系数矩阵时需要填写)
rotate:设定旋转的方法(默认互变异数最小法) scores:设定是否需要计算因子得分(默认不需要)
fm:设定因子化方法(默认极小残差法)

提取公因子的方法(fm),方法包括: ml:最大似然法 pa:主轴迭代法 wls:加权最小二乘法 gls:广义加权最小二乘法
minres:最小残差法
(摘自教程

如:

 # 导入数据
> library(openxlsx)
> data1 <- read.xlsx("E:\\Learning_R\\因子分析\\exec8.5.xlsx",rows = 1:13, cols = 1:5 )
> head(data1)
  人口 教育 佣人 服务  房价
1 5700 12.8 2500  270 25000
2 1000 10.9  600   10 10000
3 3400  8.8 1000   10  9000
4 3800 13.6 1700  140 25000
5 4000 12.8 1600  140 25000
6 8200  8.3 2600   60 12000
> data1_cor <- cor(data1)
> head(cor(data1),3)
           人口       教育      佣人      服务       房价
人口 1.00000000 0.00975059 0.9724483 0.4388708 0.02241157
教育 0.00975059 1.00000000 0.1542838 0.6914082 0.86307009
佣人 0.97244826 0.15428378 1.0000000 0.5147184 0.12192599
# 生成碎石图
> library(psych)
> fa.parallel(data1_cor, n.obs = 112, fa = "both", n.iter = 100)
Parallel analysis suggests that the number of factors =  2  and the number of components =  2 

这里写图片描述
从图中和函数给出的信息可以看出,保留两个主成分即可。

# 因子分析
> fa_model1 <- fa(data1_cor, nfactors = 2, rotate = "none", fm = "ml")
> fa_model1
Factor Analysis using method =  ml
Call: fa(r = data1_cor, nfactors = 2, rotate = "none", fm = "ml")
Standardized loadings (pattern matrix) based upon correlation matrix
       ML2  ML1   h2    u2 com
人口 -0.03 1.00 1.00 0.005 1.0
教育  0.90 0.04 0.81 0.193 1.0
佣人  0.09 0.98 0.96 0.036 1.0
服务  0.78 0.46 0.81 0.185 1.6
房价  0.96 0.05 0.93 0.074 1.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值