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 |
Run these commands to install and use the package:
install.packages("EFA.dimensions")
library(EFA.dimensions)
# example command for trial data:
MAP(data_RSE, corkind='polychoric') # MAP test on the Rosenberg Self-Esteem Scale
Click here for the reference manual for the EFA.dimensions package.
Important 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