efaMR {EFAutilities} | R Documentation |

## Exploratory Factor Analysis with Multiple Rotations

### Description

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

### Usage

```
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)
```

### Arguments

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

`factors` |
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. |

`covmat` |
A p-by-p manifest variable correlation matrix. |

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

`dist` |
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. |

`fm` |
Factor extraction methods: 'ols' (default) and 'ml' |

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

`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. |

`input.A` |
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. |

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

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

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

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

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

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

`geomin.delta` |
The controlling parameter in Geomin rotation, 0.01 as the default value. |

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

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

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

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

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

`mnames` |
Names of p manifest variables: Null (default) |

`fnames` |
Names of m factors: Null (default) |

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

### Details

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().

### Author(s)

Minami Hattori, Guangjian Zhang

### References

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

### Examples

```
#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
```

*EFAutilities*version 2.1.3 Index]