0

psych::principal在另一个函数中使用,各种rotate函数传递给principal. (principal提供许多旋转选项并将它们传递给不同的其他功能)。

我需要获得使用任何旋转过程的旋转矩阵,并实现。

所有下游轮换程序都提供此功能,但似乎没有return()principal.

例如:

randomcor <- cor(matrix(data = rnorm(n = 100), nrow = 10))
library(psych)
principalres <- principal(r = randomcor, nfactors = 3, rotate = "none")
unrot.loa <- unclass(principalres$loadings)

principalrot <- principal(r = randomcor, nfactors = 3, rotate = "varimax") # there is no way to retrieve the rot.mat from principal

# but this CAN be done from the underlying varimax!
varimaxres <- varimax(x = unrot.loa)
varimaxres$rotmat # see, THIS is what I want!

我不愿意从principal. (不要重复你自己或其他人,就像说的那样)。

有谁知道如何:

  • 我可以优雅地,不知何故,神奇地,从检索 ,虽然它似乎没有返回它?rotmatprincipal()
  • 或者,我可以估算任何rotmat必须“发生”的情况,因为我知道旋转未旋转的载荷?
4

1 回答 1

0

正如 William Revelle 所承诺的,截至1.5.8psych还返回用于因子分析和主成分分析的旋转矩阵。

这样就解决了问题,继续上面的例子:

principalrot$rot.mat == varimaxres$rotmat  # it works!
于 2015-08-31T10:06:33.620 回答