paran performs Horn's parallel analysis for a principal component or common factor analysis, so as to adjust for finite sample bias in the retention of components.paran(x, iterations=0, centile=0, quietly=FALSE,
status=TRUE, all=FALSE, cfa=FALSE, graph=FALSE,
color=TRUE, col=c("black","red","blue"),
lty=c(1,2,3), lwd=1, legend=TRUE, file="",
width=640, height=640, grdevice="png", seed=0)iterations=0, is 30P, where P is the number of variables or columns in cfa option may noticably increase the computational requirements of paran.paran performs parallel analysis for common factor analysis using a mocolor=TRUE, and all lines drawn solid. If color=FALSE, the graph is rendered in blacolor=TRUE.color=FALSE.lwd=1.legend=TRUE.file is given a character string representing a valid path. The default is not to save the graph.width=640.height=640.device to format the graph as, if the user has used the file option. The default is grdevice=png.iterations number of N by P random data setsiterations by P matrix with each row containing the eigenvalues from an equivalent principal component or common factor analysis on an N by P data set of uncorrelated random dataAs of paran version 1.4.0 application of parallel analysis to common factor analysis has been revised. See the accompanying document Gently Clarifying the Application of Horn's Parallel Analysis to Principal Components Analysis Versus Factor Analysis downloadable at http://doyenne.com/Software/files/PA_for_PCA_vs_FA.pdf.
paran, especially the legend, and the invisibly() method for returning data, and seed option.paran is an implementation of Horn's (1965) technique for evaluating the components or factors retained in a principle component analysis (PCA) or common factor analysis (FA). According to Horn, a common interpretation of non-correlated data is that they are perfectly non-colinear, and one would expect therefore to see eigenvalues equal to 1 in a PCA (or 0 in an FA) of such random data. However, Horn notes that multi-colinearity occurs due to sampling error and least-squares "bias," even in uncorrelated data, and therefore actual PCAs of random data will reveal eigenvalues of components greater than and less than 1, and FAs will reveal common factors greater than and less than 0. Horn's strategy is to contrast eigenvalues produced through a parallel PCA or FA on a number of random data sets (i.e. uncorrelated variables) with the same number of variables and observations as the experimental or observational dataset to produce eigenvalues for components or factors that are adjusted for the sample error-induced inflation. For PCA, values greater than 1 are retained in the adjustment given by:$$Ev_{obs, n} - (Ev_{sim, n} - 1)$$
For FA, values greater than 0 are retained in the adjustment given by:
$$Ev_{obs, n} - Ev_{sim, n}$$
paran performs a PCA or FA with no rotation and performs Horn's adjustment. The user may also specify how many times to make the contrast with a random dataset (default is 30 per variable). Values less than 1 will be ignored, and the default value assumed. Random datasets are generated using the rnorm() function. The program returns a vector of length P of the estimated bias for each eigenvector, where P = the number of variables in the analysis. By specifying a high centile users may employ paran to conduct parallel analysis following Glorfeld's suggestions to reduce the likelihood of over-retention. (Glorfeld, 1995)
Glorfeld, L. W. 1995. "An Improvement on Horn's Parallel Analysis Methodology for Selecting the Correct Number of Factors to Retain". Educational and Psychological Measurement. 55(3): 377--393
Hayton J. C., Allen D. G., and Scarpello V. 2004. "Factor Retention Decisions in Exploratory Factor Analysis: A Tutorial on Parallel Analysis" Organizational Research Methods. 7(2): 191--205
Horn J. L. 1965. "A rationale and a test for the number of factors in factor analysis." Psychometrika. 30: 179--185
Zwick W. R., Velicer WF. 1986. "Comparison of Five Rules for Determining the Number of Components to Retain." Psychological Bulletin. 99: 432--442
## perform a standard parallel analysis on the US Arrest data
paran(USArrests, iterations=5000)
## a conservative analysis with different result!
paran(USArrests, iterations=5000, centile=95)Run the code above in your browser using DataLab