Learn R Programming

EFAtools (version 0.7.1)

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

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

Value

An object of class "MAP" with the following elements:

  • eigenvalues: Eigenvalues of the (possibly smoothed) correlation matrix.

  • n_factors_TR2: Index \(m\) that minimizes the TR2 (original MAP) criterion.

  • n_factors_TR4: Index \(m\) that minimizes the TR4 (revised MAP) criterion.

  • criteria: A matrix with columns m, TR2 (orig. MAP), and TR4 (revised MAP).

  • settings: A list containing use, cor_method, and N.

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 cor. Defaults to "pairwise.complete.obs".

cor_method

Character string specifying the correlation coefficient to be computed if raw data are supplied. Passed to cor. Defaults to "pearson".

Details

#' MAP is based on the idea that systematic common variance is increasingly removed from a correlation matrix \(R\) as principal components are partialled out. After removing the first \(m\) components, a residual (partial) covariance matrix is obtained as $$C_m = R - A_m A_m',$$ where \(A_m\) contains the first \(m\) principal component loading vectors (PCA loadings). This residual matrix is then standardized to a partial correlation matrix $$R^*_m = D_m^{-1/2} \, C_m \, D_m^{-1/2},$$ with \(D_m = \mathrm{diag}(C_m)\). The MAP criteria summarize the off-diagonal association remaining in \(R^*_m\). The recommended number of factors/components is the \(m\) that minimizes the chosen criterion.

This function returns two MAP criteria:

  • TR2 (original MAP): $$\mathrm{MAP}_m = \frac{\mathrm{Trace}(R^{*2}_m) - p}{p(p-1)}$$ which is algebraically equivalent to the mean squared off-diagonal partial correlations and corresponds to Velicer's original MAP procedure.

  • TR4 (revised MAP): $$\mathrm{MAP4}_m = \frac{\mathrm{Trace}(R^{*4}_m) - p}{p(p-1)}$$ a higher-order variant that places more weight on dominant residual association structure.

Input handling. x can be a correlation matrix or raw data. If x is not a correlation matrix, correlations are computed using cor with the requested missing-data handling (use) and association measure (cor_method). If a correlation matrix is supplied, N must be provided.

Matrix conditioning. The function stops if the correlation matrix is singular (non-invertible), because subsequent computations rely on stable matrix operations. If the correlation matrix is not positive definite (e.g., due to sampling error), it is smoothed using cor.smooth.

PCA-based partialing. The PCA loading matrix \(A\) is obtained from the eigen-decomposition of \(R\) as \(A = V \Lambda^{1/2}\). For each \(m = 0, \dots, p-1\), the first \(m\) columns of \(A\) are used to compute \(C_m = R - A_m A_m'\). The residual is re-standardized to the partial correlation matrix \(R^*_m\) using \(D_m^{-1/2}\) (i.e., dividing by the square roots of residual variances).

Termination. If residual variances (the diagonal of \(C_m\)) become non-positive or numerically unstable, the loop terminates early because \(R^*_m\) cannot be formed reliably.

References

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.

Examples

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

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

Run the code above in your browser using DataLab