“用R进行探索性因素分析”的版本间的差异
来自OBHRM百科
Lichaoping(讨论 | 贡献) |
Lichaoping(讨论 | 贡献) (→脚本与注释) |
||
第6行: | 第6行: | ||
names(efadata) <-c(paste("y", 1:12, sep="")) # 给变量命名,这里命名为y1-y12 | names(efadata) <-c(paste("y", 1:12, sep="")) # 给变量命名,这里命名为y1-y12 | ||
library(psych) # 调用psych包 | library(psych) # 调用psych包 | ||
− | f1 <- fa(efadata,1 | + | f1 <- fa(efadata,1,rotate="none") # 进行因素分析, 强迫1个因素,不旋转 |
load=loadings(f1) | load=loadings(f1) | ||
print(load,sort=TRUE,digits=2) # 显示结果,结果排序,不显示小于0.30的负荷</pre> | print(load,sort=TRUE,digits=2) # 显示结果,结果排序,不显示小于0.30的负荷</pre> |
2022年7月31日 (日) 12:01的最新版本
不旋转
如果要进行Harman单因素检验(Harman's single factor test),这时应该采用的就是不旋转的单因素EFA。
脚本与注释
if(!"psych" %in% installed.packages()) install.packages("psych") #是否安装psych包,如果没有则安装 efadata <- read.table("http://www.obhrm.net/data/ex4.1a.dat") # 读取数据文件到efadata,efadata是自己命名,可以随便定 names(efadata) <-c(paste("y", 1:12, sep="")) # 给变量命名,这里命名为y1-y12 library(psych) # 调用psych包 f1 <- fa(efadata,1,rotate="none") # 进行因素分析, 强迫1个因素,不旋转 load=loadings(f1) print(load,sort=TRUE,digits=2) # 显示结果,结果排序,不显示小于0.30的负荷
结果
正交旋转
脚本与注释
efadata <- read.table("http://www.obhrm.net/data/ex4.1a.dat") # 读取数据文件到efadata,efadata是自己命名,可以随便定 names(efadata) <-c(paste("y", 1:12, sep="")) # 给变量命名,这里命名为y1-y12 library(psych) # 调用psych包 f_num<-fa.parallel(efadata, fa="both", n.iter=100,main="散点图") # 通过散点图,判断几个因素最合适 f4 <- fa(efadata,f_num$nfact,rotate="varimax") # 进行因素分析,4个因素(根据散点图自动得到数字4),正交旋转 print(loadings(f4),sort=TRUE,digits=2,cutoff=0.30) # 显示结果,结果排序,不显示小于0.30的负荷
结果
>print(loadings(f4),sort=TRUE,digits=2,cutoff=0.30) # 显示结果,结果排序,不显示小于0.30的负荷 Loadings: MR2 MR1 MR3 MR4 y7 0.73 y8 0.73 y9 0.71 y10 0.69 y11 0.79 y12 0.66 y1 0.64 y2 0.81 y3 0.63 y4 0.65 y5 0.76 y6 0.67 MR2 MR1 MR3 MR4 SS loadings 1.58 1.54 1.47 1.45 Proportion Var 0.13 0.13 0.12 0.12 Cumulative Var 0.13 0.26 0.38 0.50
斜交旋转
脚本与注释
curwd=setwd("c:\\program files\\mplus\\mplus examples\\user's guide examples") # 设定数据文件所在目录为工作目录,如脚本与数据在同一目录,则无需设定 efadata <- read.table("ex4.1a.dat") # 读取数据文件到efadata,efadata是自己命名,可以随便定 names(efadata) <-c(paste("y", 1:12, sep="")) # 给变量命名,这里命名为y1-y12 library(psych) # 调用psych包 fa.parallel(efadata, fa="both", n.iter=100,main="散点图") # 通过散点图,判断几个因素最合适 f4 <- fa(efadata,4,rotate="promax") # 进行因素分析,4个因素,斜交旋转 load=loadings(f4) print(load,sort=TRUE,digits=2,cutoff=0.30) # 显示结果,结果排序,不显示小于0.30的负荷
结果
> print(load,sort=TRUE,digits=2,cutoff=0.30) # 显示结果,结果排序,不显示小于0.30的负荷 Loadings: MR2 MR1 MR3 MR4 y7 0.73 y8 0.73 y9 0.71 y10 0.69 y11 0.79 y12 0.66 y1 0.64 y2 0.81 y3 0.63 y4 0.65 y5 0.76 y6 0.67 MR2 MR1 MR3 MR4 SS loadings 1.58 1.55 1.47 1.45 Proportion Var 0.13 0.13 0.12 0.12 Cumulative Var 0.13 0.26 0.38 0.50