| efa_map | R Documentation |
Computes Velicer's Minimum Average Partial (MAP) criterion for determining the number of
factors/components to retain. The function implements the original MAP criterion
(Velicer, 1976), expressed via the \mathrm{TR2} representation, and the revised
\mathrm{TR4} variant proposed by Velicer, Eaton, and Fava (2000).
efa_map(
x,
use = c("pairwise.complete.obs", "all.obs", "complete.obs", "everything",
"na.or.complete"),
cor_method = c("pearson", "spearman", "kendall", "poly", "tetra")
)
x |
A numeric |
use |
Character string specifying the treatment of missing values when computing correlations.
Passed to |
cor_method |
Character string specifying the correlation coefficient to be computed if raw
data are supplied. One of |
MAP partials successive principal components out of the correlation matrix and,
after removing m components, summarizes the off-diagonal partial
correlations r^*_{ij} that remain in the m-th partial correlation
matrix M (which has a unit diagonal); the suggested number of factors is
the m that minimizes the criterion. Two criteria are returned, each
rescaling the trace of a matrix power of M by the number of off-diagonal
cells p(p-1):
TR2 (original MAP; Velicer, 1976): the average squared off-diagonal partial correlation,
\mathrm{TR2}_m = \frac{\mathrm{tr}(M^2) - p}{p(p-1)} = \frac{\sum_{i \neq j} (r^*_{ij})^2}{p(p-1)},
where subtracting p removes the p unit diagonal entries.
TR4 (revised MAP; Velicer, Eaton, & Fava, 2000): the analogous fourth-power summary, formed from the trace of the fourth matrix power,
\mathrm{TR4}_m = \frac{\mathrm{tr}(M^4) - p}{p(p-1)}.
Moving from the squared to the fourth power downweights the small partial
correlations relative to the large ones, which can sharpen the minimum.
Unlike TR2, \mathrm{tr}(M^4) is not the sum of the fourth powers of the
individual partial correlations; the matrix power is intended and is what
Velicer, Eaton, and Fava (2000) describe.
Both criteria are returned for every call and they can suggest different numbers of factors on the same correlation matrix. Both are in use in the literature and neither is treated as the default here, so be sure to state which of the two you report, as you would for any other analysis choice.
MAP is most dependable when the components are well determined, that is with many
indicators per factor and substantial loadings. It has a well-documented tendency
to under-extract, particularly with few indicators per factor or weak loadings
(Zwick & Velicer, 1986; Auerswald & Moshagen, 2019), so it is best read as a lower
bound and paired with a criterion that errs in the other direction, such as the
Kaiser-Guttman criterion (efa_kgc()).
The criterion is evaluated over m = 0, \ldots, p - 1. Each step standardizes
the partial covariance matrix by its residual standard deviations, which requires
every residual variance to stay positive. Partialling out all but one component
leaves a rank-one residual, so the final point m = p - 1 is undefined for
most correlation matrices and is routinely returned as NA. A residual variance
can also reach zero earlier, most often on a near-singular matrix; the search then
stops there, the criterion values that could be computed are kept, the remaining
values stay NA, and a warning (class efa_map_truncated) reports how far the
grid was searched. In that case the suggested m is the minimum over the
evaluated range only, so it should be read together with the returned series.
A non-positive-definite input correlation matrix (e.g. from sampling error) is
smoothed with psych::cor.smooth().
An object of class efa_retention (see print.efa_retention() for the
print method). MAP has no plot; plot.efa_retention() returns NULL with a
message for it. Its main elements are:
n_factors: A named numeric vector ("TR2", "TR4") with the index
m that minimizes the original (TR2) and revised (TR4) MAP criterion.
results: A list with one record per criterion, each holding the
criterion values over m and, in m_last, the largest m at which
the criterion could be evaluated (see details).
settings: A list containing use and cor_method.
Auerswald, M., & Moshagen, M. (2019). How to determine the number of factors to retain in exploratory factor analysis: A comparison of extraction methods under realistic conditions. Psychological Methods, 24(4), 468–491. https://doi.org/10.1037/met0000200
Velicer, W. F. (1976). Determining the number of components from the matrix of partial correlations. Psychometrika, 41, 321–327.
Velicer, W. F., Eaton, C. A., & Fava, J. L. (2000). Construct explication through factor or component analysis: A review and evaluation of alternative procedures for determining the number of factors or components. In Goffin, R. D. & Helmes, E. (Eds.), Problems and Solutions in Human Assessment: Honoring Douglas N. Jackson at Seventy (pp. 41–71). Boston: Kluwer.
Zwick, W. R., & Velicer, W. F. (1986). Comparison of five rules for determining the number of components to retain. Psychological Bulletin, 99, 432–442. https://doi.org/10.1037/0033-2909.99.3.432
efa_retain() as a wrapper function for this and the other factor
retention criteria.
Other factor retention criteria:
efa_cd(),
efa_ekc(),
efa_hull(),
efa_kgc(),
efa_nest(),
efa_parallel(),
efa_retain(),
efa_scree(),
efa_smt()
## Example with raw data
res <- efa_map(GRiPS_raw)
res
## Example with a correlation matrix
res2 <- efa_map(test_models$baseline$cormat)
res2
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.