我是计算机科学专业的研究生。我一直在为一个研究项目做一些探索性因素分析。我的同事(领导该项目)使用 SPSS,而我更喜欢使用 R。这无关紧要,直到我们发现两个统计软件包之间存在重大差异。
我们使用主轴分解作为提取方法(请注意,我很清楚 PCA 和因子分析之间的区别,并且我们没有使用 PCA,至少不是故意的)。根据我的阅读,这应该对应于 R 中的“主轴”方法,以及 SPSS 中的“主轴分解”或“未加权最小二乘法”,根据 R 文档。我们正在使用倾斜旋转方法(特别是promax),因为我们期望相关因素,并且正在解释模式矩阵。
在 R 和 SPSS 中运行这两个程序,有很大的不同。模式矩阵给出不同的载荷。尽管这为变量关系提供了或多或少相同的因素,但相应的载荷之间存在高达 0.15 的差异,这似乎超出了提取方法和 promax 旋转的不同实现所预期的值。然而,这还不是最惊人的区别。
因子解释的累积方差在 SPSS 结果中约为 40%,在 R 结果中为 31%。这是一个巨大的差异,并导致我的同事想要使用 SPSS 而不是 R。我对此没有任何问题,但如此大的差异让我认为我们可能会错误地解释某些东西,这是一个问题。
当我们运行未加权最小二乘分解时,SPSS 报告了不同类型的解释方差。初始特征值的解释方差比例为 40%,而平方载荷提取和 (SSL) 的解释方差比例为 33%。这使我认为初始特征值不是要查看的适当数字(我怀疑这是在旋转之前解释的方差,尽管它太大超出了我的范围)。更令人困惑的是,SPSS 还显示 Rotation SSL,但不计算解释方差的百分比(SPSS 告诉我,具有相关因素意味着我无法添加 SSL 来找到总方差,这对我所看到的数学是有意义的)。R 报告的 SSL 与其中任何一个都不匹配,R 告诉我它描述了总方差的 31%。R 的 SSL 与 Rotation SSL 最接近。来自原始相关矩阵的 R 的特征值与 SPSS 的初始特征值匹配。
另外,请注意我已经尝试过使用不同的方法,并且 SPSS 的 ULS 和 PAF 似乎与 R 的 PA 方法最接近。
我的具体问题:
- 我应该期望 R 和 SPSS 与因子分析实现有多大差异?
- 我应该解释 SPSS 中的哪一个平方载荷之和、初始特征值、提取或旋转?
- 还有其他我可能忽略的问题吗?
我对 SPSS 和 R 的调用如下:
SPSS:
FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT INITIAL KMO AIC EXTRACTION ROTATION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION PROMAX(4).
回复:
library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)