This function can be used to extract an unrotated factor structure matrix using the following algorithms: (a) unweighted least squares ("fals"); (b) maximum likelihood ("faml"); (c) iterated principal axis factoring ("fapa"); and (d) principal components analysis ("pca").
faX(R, n = NULL, numFactors = NULL, facMethod = "fals", faControl = NULL)
(Matrix) A correlation matrix used for factor extraction.
(Numeric) Sample size associated with the correlation matrix. Defaults to n = NULL.
(Numeric) The number of factors to extract for subsequent rotation.
(Character) The method used for factor extraction. The supported options are "fals" for unweighted least squares, "faml" for maximum likelihood, "fapa" for iterated principal axis factoring, and "pca" for principal components analysis. The default method is "fals".
(List) A list of optional parameters passed to the factor
Initial communality estimate: According to Widaman and Herringer (1985), the initial communality estimate does not have much bearing on the resulting solution when the a stringent convergence criterion is used. In their analyses, a convergence criterion of .001 (i.e., slightly less stringent than the default of 1e-4) is sufficiently stringent to produce virtually identical communality estimates irrespective of the initial estimate used. It should be noted that all four methods for estimating the initial communality in Widaman and Herringer (1985) are the exact same used in this function. Based on their findings, it is not recommended to use a convergence criterion lower than 1e-3.
This function returns a list of output relating to the extracted factor loadings.
loadings: (Matrix) An unrotated factor structure matrix.
h2: (Vector) Vector of final communality estimates.
faFit: (List) A list of additional factor extraction output.
facMethod: (Character) The factor extraction routine.
df: (Numeric) Degrees of Freedom from the maximum likelihood factor extraction routine.
n: (Numeric) Sample size associated with the correlation matrix.
objectiveFunc: (Numeric) The evaluated objective function for the maximum likelihood factor extraction routine.
RMSEA: (Numeric) Root mean squared error of approximation from Steiger & Lind (1980). Note that bias correction is computed if the sample size is provided.
testStat: (Numeric) The significance test statistic for the maximum likelihood procedure. Cannot be computed unless a sample size is provided.
pValue: (Numeric) The p value associated with the significance test statistic for the maximum likelihood procedure. Cannot be computed unless a sample size is provided.
gradient: (Matrix) The solution gradient for the least squares factor extraction routine.
maxAbsGradient: (Numeric) The maximum absolute value of the gradient at the least squares solution.
Heywood: (Logical) TRUE if a Heywood case was produced.
converged: (Logical) TRUE if the least squares or principal axis factor extraction routine converged.
Casey Giordano (Giord023@umn.edu)
Niels G. Waller (firstname.lastname@example.org)
Jung, S. & Takane, Y. (2008). Regularized common factor analysis. New trends in psychometrics, 141-149.
Steiger, J. H., & Lind, J. (1980). Paper presented at the annual meeting of the Psychometric Society. Statistically-based tests for the number of common factors.
Widaman, K. F., & Herringer, L. G. (1985). Iterative least squares estimates of communality: Initial estimate need not affect stabilized value. Psychometrika, 50(4), 469-477.
Other Factor Analysis Routines:
## Generate an example factor structure matrix lambda <- matrix(c(.62, .00, .00, .54, .00, .00, .41, .00, .00, .00, .31, .00, .00, .58, .00, .00, .62, .00, .00, .00, .38, .00, .00, .43, .00, .00, .37), nrow = 9, ncol = 3, byrow = TRUE) ## Find the model implied correlation matrix R <- lambda %*% t(lambda) diag(R) <- 1 ## Extract (principal axis) factors using the factExtract function Out1 <- faX(R = R, numFactors = 3, facMethod = "fapa", faControl = list(communality = "maxr", epsilon = 1e-4)) ## Extract (least squares) factors using the factExtract function Out2 <- faX(R = R, numFactors = 3, facMethod = "fals", faControl = list(treatHeywood = TRUE))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.