Learn R Programming

EFAtools (version 1.0.0)

efa_map: Velicer's minimum average partial (MAP) criterion

Description

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

Usage

efa_map(
  x,
  use = c("pairwise.complete.obs", "all.obs", "complete.obs", "everything",
    "na.or.complete"),
  cor_method = c("pearson", "spearman", "kendall", "poly", "tetra")
)

Value

An object of class efa_retention (see print.efa_retention() for the print method) with the following main elements:

  • 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\).

  • settings: A list containing use and cor_method.

Arguments

x

A numeric matrix or data.frame. Can be either (a) a correlation matrix, or (b) raw data (rows = observations, columns = variables) from which correlations are computed.

use

Character string specifying the treatment of missing values when computing correlations. Passed to stats::cor(). Defaults to "pairwise.complete.obs".

cor_method

Character string specifying the correlation coefficient to be computed if raw data are supplied. One of "pearson", "spearman", or "kendall" (passed to stats::cor()), or "poly" / "tetra" for polychoric / tetrachoric correlations of ordinal / binary data (a two-step estimator with no empty-cell continuity correction). Defaults to "pearson".

Details

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.

A non-positive-definite input correlation matrix (e.g. from sampling error) is smoothed with psych::cor.smooth().

See Also

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

Examples

Run this code
## Example with raw data
res <- efa_map(GRiPS_raw)
res

## Example with a correlation matrix
res2 <- efa_map(test_models$baseline$cormat)
res2

Run the code above in your browser using DataLab