[Rd] promax rotation matrix (PR#1146)
pperkins@ucsd.edu
pperkins@ucsd.edu
Fri, 26 Oct 2001 20:44:09 +0200 (MET DST)
Full_Name: Peter Perkins
Version: 1.3.0
OS: Windows 2000
Submission from: (NULL) (144.212.95.125)
I believe that line 15 in promax from the mva library is incorrect. It currently
reads
U <- U %*% xx$rotmat
and I believe it should be
U <- xx$rotmat %*% U
I could easily be wrong about this, what with the different definitions of the
rotation matrix vs. its transpose or its inverse. But as I read the help page,
the rotation returned should be the one right-applied to the unrotated loadings.
If one gets an unrotated solution from factanal, and then rotates it using
promax, the rotation matrix returned by promax does not rotate the original
loadings to the loadings actually returned by promax. For example:
> ability.FA <- factanal(factors = 2, covmat = ability.cov, rotation = "none")
> pm <- promax(ability.FA$loadings)
> ability.FA$loadings %*% pm$rotmat
[,1] [,2]
general 0.506710586637257760 0.3869775784069614
picture 0.016586316593501016 0.5487934474308697
blocks 0.009193639894000683 0.7618755867650074
maze 0.000379404610399037 0.4152980202252167
reading 1.239552601870304500 -0.0721695133918453
vocab 0.993619401777782300 0.0121717852577490
> pm$loadings
Factor1 Factor2
general 0.3645353358177468 0.47007326286349982
picture -0.0574968553480034 0.67108222064051182
blocks -0.0911409139522113 0.93173350519662612
maze -0.0534713467857141 0.50791682927425630
reading 1.0236923640723727 -0.09611608932609411
vocab 0.8115188349528749 0.00859299169089836
I believe that the latter is correct. Changing the order of the product in line
15 makes the two the same.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._