Brian O'Connor | UBCO Psychology | UBCO |

** SPSS, SAS, MATLAB, and R Programs for Determining **

** the Number of Components and Factors Using **

** Parallel Analysis and Velicer's MAP Test**

Reference:

O'Connor, B. P. (2000). SPSS and SAS programs for determining the number of components using parallel analysis and Velicer's MAP test. *Behavior Research Methods, Instrumentation, and Computers, 32,* 396-402.

Popular statistical software packages do not have the proper procedures for determining the number of components or factors in correlation matrices. Parallel analysis and Velicer's minimum average partial (MAP) test are validated procedures that are widely recommended by statisticians. This paper described brief and efficient programs for conducting parallel analyses and the MAP test using SPSS, SAS, and MATLAB.

**The parallel analysis programs have been revised:**

Parallel analyses of both principal components and common/principal axis factors can now be conducted. The common/principal axis factor parallel analyses produce results that are essentially identical to those yielded by Montanelli and Humphreys's equation (1976, Psychometrika, vol. 41, p. 342). If your eventual goal is to conduct a principal components analysis on your data, then run the parallel analyses using the principal components option in the programs below. Unfortunately, when the eventual goal is conduct a common/principal axis factor analysis on your data, the experts disagree on whether principal component eigenvalues or common/principal axis factor eigenvalues should be used to determine the number of factors. Some (e.g., Montanelli, Humphreys, Gorsuch, Widaman) argue that if the eventual goal is to conduct a common/principal axis factor analysis, then communalities should be placed on the diagonal of a correlation matrix before extracting the eigenvalues that are then examined to determine the number of factors. Others do not follow this procedure: They extract and examine principal component eigenvalues to determine the number of common/principal axis factors!? The latter procedure was recommended by Cattell and it is the procedure that he used in his scree tests. It is also the procedure used in the SPSS and SAS factor analysis routines. The present programs permit both kinds of analyses.

The programs named "rawpar" conduct parallel analyses after first reading a raw data matrix, wherein the rows of the data matrix are cases/individuals and the columns are variables. The "rawpar" programs can run parallel analyses based on either normally distributed random data generation or on permutations of the original raw data set. In the latter case, the distributions of the original raw variables are exactly preserved in the permuted versions used in the parallel analyses. Permutations of the raw data set are thus highly accurate and most relevant, especially in cases where the raw data are not normally distributed.

SPSS: | SAS: | MATLAB: | |

map.sps | map.sas | map.m | for Velicer's MAP test |

parallel.sps | parallel.sas | parallel.m | for parallel analysis |

rawpar.sps | rawpar.sas | rawpar.m | for parallel analysis using raw data |

There is an R package named "paramap" that runs these and other analyses (revised November, 2018).

Run these commands to install and use the package:

source("https://install-github.me/r-lib/remotes") # load remotes package

remotes::install_github("bpoconnor/paramap") # use remotes to install paramap from github

# if you get prompted about more recent versions of packages, select and choose to update them all

library(paramap)

The paramap package files are on GitHub

click here for the Reference manual for the paramap packageImportant Cautions Regarding Item-Level Parallel and Factor Analyses

Brian P. O'Connor

Department of Psychology

University of British Columbia - Okanagan

Kelowna, British Columbia, Canada

brian.oconnor@ubc.ca