“用R进行探索性因素分析”的版本间的差异

来自OBHRM百科
跳转至: 导航搜索
脚本与注释
第22行: 第22行:
  
 
===结果===
 
===结果===
<pre>>print(load,sort=TRUE,digits=2,cutoff=0.30)                  # 显示结果,结果排序,不显示小于0.30的负荷
+
<pre>>print(loadings(f4),sort=TRUE,digits=2,cutoff=0.30)                  # 显示结果,结果排序,不显示小于0.30的负荷
  
 
Loadings:
 
Loadings:

2022年7月31日 (日) 12:00的版本

不旋转

如果要进行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