womax {lazy.fa} | R Documentation |
Weighted Orthomax Rotation by Kaiser's pairwize method
Description
Weighted Orthomax Rotation by Kaiser's pairwize method
Usage
womax(A, gamma = 1, norm = 0, maxiter = 100, eps = 1e-06, print = 0)
Arguments
A |
factor pattern matrix to be rotated |
gamma |
The orthomax weight, or |
norm |
= 1 to use Kaiser's normal varimax |
maxiter |
max # of iterations |
eps |
convergence criterion |
print |
= 1 to print the result |
Details
The names associated with the value of gamma
Varimax gamma = 1 Biquartimax gamma = 0.5 Quartimax gamma = 0 Equamax gamma = ncol(A)/2 Factorparsimax gamma = ncol(A) Parsimax gamma = (nrow(A)(ncol(A)-1))/(nrow(A)+ncol(A)-2)
When gamma >= 9999 the resulting rotated matrix has equal factor
contributions.
When gamma <= -9999 the resulting rotated matrix has maximum
variance factor contributions which makes t(B)
Value
A list of B and T
where B is the rotated matrix, and T is the rotation matrix.
Examples
# generate simple structure factor loadings matrix A and rotate it
set.seed(1701)
nvar <- 10
ndim <- 3
A <- gendatafa_A( nvar, ndim )$loadings
T <- matrix(rnorm(ndim*ndim),ndim,ndim)
T <- T%*%t(T)
T <- eigen(T)$vectors
A <- round( A%*%T, 3 )
# native normalized varimax
res_varimax <- varimax(A, normalize=1)
B0 <- unclass(res_varimax$loadings)
T0 <- res_varimax$rotmat
# womax
res_womax <- womax(A, gamma=1, norm=1, print=1)
B1 <- res_womax$B
T1 <- res_womax$T
printm( B0, B1, fmt="7.3" )
printm( T0, T1, fmt="7.3" )
printm(solve(t(B0)%*%B0)%*%t(B0)%*%B1, fmt="10.8")
# native raw varimax
res_varimax <- varimax(A, normalize=0)
B0 <- unclass(res_varimax$loadings)
T0 <- res_varimax$rotmat
# womax
res_womax <- womax(A, gamma=1, norm=0, print=1)
B1 <- res_womax$B
T1 <- res_womax$T
printm( B0, B1, fmt="7.3" )
printm( T0, T1, fmt="7.3" )
printm(solve(t(B0)%*%B0)%*%t(B0)%*%B1, fmt="10.8")
[Package lazy.fa version 1.0.0.20250913 ]