这是我在这个论坛上的第一篇文章。我是 R 和因子分析的新手,我想我有一个非常简单的问题。我正在关注 Andy Field 的“使用 R 发现统计数据”一书(2012 年)以获得一般指导。Field 建议在使用倾斜旋转执行因子分析时同时提供模式和结构矩阵。
虽然模式矩阵只是负载表,但我在使用该factanal()
函数获取 R 中的结构矩阵时遇到了更多困难。
为了使用该函数获得 PCA 的结构矩阵principal()
,Field 提供了以下公式:fit$loadings %*% fit$Phi
,它将因子加载矩阵乘以因子相关矩阵。虽然factanal()
确实将因子相关性存储在某处 - 因为它在一般输出的一部分(负载下)中提供它们 - 我在拟合模型的输出中找不到名为“Phi”、“因子相关性”或等效项的对象(在 R Studio 中)。因此,我不知道在 Field 的公式中放入什么项来替换 Phi 以获得结构矩阵。
我之前在这里和这里看到过,factanal()
没有提供因子相关性——但现在它确实在输出中提供了它;我只是不知道访问它的正确术语。感谢您对此的任何帮助!
编辑:根据这本书,我使用以下公式,其中包含四个因素和 PCA 的倾斜旋转:
pc4 <- principal(raqData, nfactors = 4, rotate = "oblimin").
在那种情况下,当我在 R Studio 中双击对象“pc4”时,有一个名为“Phi”的对象,我可以毫无困难地使用pc4$loadings %*% pc4$Phi
.
接下来,我尝试使用 EFA,而不是 PCA,再次使用四个因子和倾斜旋转 (promax)。这一步有效,我可以得到因子相关性(为了简洁而删减一些输出):
> fit <- factanal(mydata, 4, rotation="promax")
> fit
Call...
Uniquenesses...
Loadings...
SS loadings...
Factor Correlations:
Factor1 Factor2 Factor3 Factor4
Factor1 1.000 -0.874 0.632 0.571
Factor2 -0.874 1.000 -0.118 -0.438
Factor3 0.632 -0.118 1.000 0.356
Factor4 0.571 -0.438 0.356 1.000
Test of the hypothesis that 4 factors are sufficient...
接下来,我尝试结构矩阵公式并得到以下错误:
> fit$loadings %*% fit$Phi
Error in fit$loadings %*% fit$Phi :
requires numeric/complex matrix/vector arguments
但是当我检查用 获得的“适合”对象时factanal()
,没有名为“Phi”的对象(因为有principal()
)。不知道如何解释上面的错误。我在这里和这里看到过这个错误,但我不清楚如何在这里解决它。