赞
踩
时间: 2018-08-09(学习时间)、2018-08-12(记录时间)
教程:知乎:Learn R | 数据降维之主成分分析(上)、Learn R | 数据降维之因子分析(下) 作者:Jason
数据来源:《应用多元统计分析》 王学民 编著 P261-P262 习题8.5、8.6
使用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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。