efaMR {EFAutilities}R Documentation

Exploratory Factor Analysis with Multiple Rotations


The function compares EFA solutions from multiple random starts or from multiple rotation criteria.


efaMR(x=NULL, factors=NULL, covmat=NULL, n.obs=NULL, 
      dist='normal', fm='ols', rtype='oblique', rotation = 'CF-varimax', 
      input.A=NULL, additionalRC = NULL, 
      nstart = 100, compare = 'First', plot = T, cex = .5,
      normalize = FALSE, geomin.delta = .01, 
      MTarget = NULL, MWeight = NULL, PhiTarget = NULL, PhiWeight = NULL, 
      useorder = FALSE, mnames = NULL, fnames = NULL, wxt2 = 1)



The raw data: an n-by-p matrix where n is number of participants and p is the number of manifest variables.


The number of factors m: specified by a researcher; the default one is the Kaiser rule which is the number of eigenvalues of covmat larger than one.


A p-by-p manifest variable correlation matrix.


The number of participants used in calculating the correlation matrix. This is not required when the raw data (x) is provided.


Manifest variable distributions: 'normal'(default), 'continuous', 'ordinal' and 'ts'. 'normal' stands for normal distribution. 'continuous' stands for nonnormal continuous distributions. 'ordinal' stands for Likert scale variable. "ts" stands for distributions for time-series data.


Factor extraction methods: 'ols' (default) and 'ml'


Factor rotation types: 'oblique' (default) and 'orthogonal'. Factors are correlated in 'oblique' rotation, and they are uncorrelated in 'orthogonal' rotation.


Factor rotation criteria: 'CF-varimax' (default), 'CF-quartimax', 'CF-equamax', 'CF-facparsim', 'CF-parsimax','target', and 'geomin'. These rotation criteria can be used in both orthogonal and oblique rotation. In addition, a fifth rotation criterion 'xtarget'(extended target) rotation is available for oblique rotation. The extended target rotation allows targets to be specified on both factor loadings and factor correlations.


A p-by-m unrotated factor loading matrix. It can replace x or covmat as input arguments. Only factor rotation will be conducted; factor extraction will not be conducted.


A string of factor extraction methods against which the main rotation is compared. Required only when nstart = 1. See details.


The number random orthogonal starts used, with 100 as the default value. With nstart = 1, only one random start is used. See details.


'First' (default) or 'All': The global solution is compared against all local solutions with 'First'; All solutions are compared with each other with 'All'.


Whether a bar graph that shows the number and frequencies of local solutions or not: TRUE (default) and FALSE.


A tuning parameter if the plot is produced: .5 (default)


Row standardization in factor rotation: FALSE (default) and TRUE (Kaiser standardization).


The controlling parameter in Geomin rotation, 0.01 as the default value.


The p-by-m target matrix for the factor loading matrix in target rotation or xtarget rotation.


The p-by-m weight matrix for the factor loading matrix in target rotation or xtarget rotation.


The m-by-m target matrix for the factor correlation matrix in xtarget rotation.


The m-by-m weight matrix for the factor correlation matrix in xtarget rotation.


Whether an order matrix is used for factor alignment: FALSE (default) and TRUE


Names of p manifest variables: Null (default)


Names of m factors: Null (default)


The relative weight for factor correlations in 'xtarget' (extended target) rotation: 1 (default)


efaMR performs EFA with multiple rotation using random starts.

Geomin rotation, in particular, is known to produce multiple local solutions; the use of random starts is advised (Hattori, Zhang, & Preacher, 2018).

The p-by-m unrotated factor loading matrix is post-multiplied by an m-by-m random orthogonal matrices before rotation.

The number of random starts can be specified with the default value of nstart = 100. Bar plot that represents frequencies of each solution is provided. If multiple solutions are found, they are compared with each other using congruence coefficient.

If nstart = 1, no random start is used. The solution is compared against solutions using additional rotation criterion provided by additionalRC.

For example, with rotation = geomin, additionalRC = c('CF-varimax', 'CF-quartimax), the geomin solution is compared against those with CF-varimax and CF-quartimax.

Estimation of standard errors and construction of confidence intervals are disabled with the function efaMR(). They are available with a function efa().


Minami Hattori, Guangjian Zhang


Hattori, M., Zhang, G., & Preacher, K. J. (2017). Multiple local solutions and geomin rotation. Multivariate Behavioral Research, 720–731. doi: 10.1080/00273171.2017.1361312


#data("CPAI537")    # Chinese personality assessment inventory (N = 537)

# # Example 1: Oblique geomin rotation with 10 random starts
# res1 <- efaMR(CPAI537, factors = 5, fm = 'ml', 
#               rtype = 'oblique', rotation = 'geomin',
#               geomin.delta = .01, nstart = 10)
# res1
# summary(res1)
# res1$MultipleSolutions
# res1$Comparisons

# In practice, we recommend nstart = 100 or more (Hattori, Zhang, & Preacher, 2018).   

# Example 2: Oblique geomin rotation (no random starts)
#            compared against CF-varimax and CF-quartimax rotation solutions
# res2 <- efaMR(CPAI537, factors = 5, fm = 'ml', 
#               rtype = 'oblique', rotation = 'geomin',
#               additionalRC = c('CF-varimax', 'CF-quartimax'), 
#               geomin.delta = .01, nstart = 1)
# res2$MultipleSolutions
# res2$Comparisons

# Example 3: Obtaining multiple solutions from the unrotated factor loading matrix as input
# res3 <- efa(CPAI537, factors = 5, fm = 'ml', 
#             rtype = 'oblique', rotation = 'geomin')
# set.seed(2017)
# res3MR <- efaMR(input.A = res3$unrotated, rtype = 'oblique',
#                 rotation = 'geomin', geomin.delta = .01)
# res3MR$MultipleSolutions
# res3MR$Comparisons

[Package EFAutilities version 2.1.1 Index]