[R] oblique.scores argument for fa function in psych package

Mark Seeto markseeto at gmail.com
Thu Nov 14 03:11:42 CET 2013


Dear R help,

I'm using version 1.3.10.12 of the psych package. The help page for fa
says that when calculating factor scores, oblique.scores=FALSE causes
the pattern matrix to be used, and oblique.scores=TRUE causes the
structure matrix to be used. However, when I try it, it seems to be
the other way around.

Example:

###############################################################################
library(psych)

set.seed(1)

n <- 100

Y <- data.frame(y1 = rnorm(n),
                y2 = rnorm(n),
                y3 = rnorm(n),
                y4 = rnorm(n),
                y5 = rnorm(n),
                y6 = rnorm(n))

fa1 <- fa(Y, nfactors=2, rotate="oblimin", fm="minres", oblique.scores=FALSE)
fa2 <- fa(Y, nfactors=2, rotate="oblimin", fm="minres", oblique.scores=TRUE)

fa1$scores[1:3, ]
fa2$scores[1:3, ]

(scale(Y) %*% solve(cor(Y)) %*% fa1$loadings)[1:3, ]   # not the same
as fa1$scores[1:3, ]
(scale(Y) %*% solve(cor(Y)) %*% fa1$Structure)[1:3, ]  # same as
fa1$scores[1:3, ]

(scale(Y) %*% solve(cor(Y)) %*% fa2$loadings)[1:3, ]   # same as
fa2$scores[1:3, ]
(scale(Y) %*% solve(cor(Y)) %*% fa2$Structure)[1:3, ]  # not the same
as fa2$scores[1:3, ]

###############################################################################

Have I misunderstood something?

Thanks,
Mark Seeto



More information about the R-help mailing list