factor.pa(r, nfactors=1, residuals = FALSE, rotate = "varimax",n.obs = NA,
scores = FALSE,SMC=TRUE, missing=FALSE,impute="median",min.err = 0.001, digits = 2, max.iter = 50,symmetric=TRUE,warnings=TRUE)
VSS
, ICLUST
, and principal
for this fit statistic.factanal
(which seems to be Bartlett's test) :
$\chi^2 = (n.obs - 1 - (2 * p + 5)/6 - (2 * factors)/3)) * f$factanal
). The existence of uniquenesses is what distinguishes factor analysis from principal components analysis (e.g., principal
). Principal axes factor analysis has a long history in exploratory analysis and is a straightforward procedure. Successive eigen value decompositions are done on a correlation matrix with the diagonal replaced with diag (FF') until sum(diag(FF')) does not change (very much). The current limit of max.iter =50 seems to work for most problems, but the Holzinger-Harmon 24 variable problem needs about 203 iterations to converge for a 5 factor solution.
Principal axes may be used in cases when maximum likelihood solutions fail to converge.
A problem in factor analysis is to find the best estimate of the original communalities. Using the Squared Multiple Correlation (SMC) for each variable will underestimate the communalities, using 1s will over estimate. By default, the SMC estimate is used. If, however, a solution fails to be achieved, it is useful to try again using ones (SMC =FALSE).
The algorithm does not attempt to find the best (as defined by a maximum likelihood criterion) solution, but rather one that converges rapidly using successive eigen value decompositions. The maximum likelihood criterion of fit and the associated chi square value are reported, and will be worse than that found using maximum likelihood procedures.
Although for items, it is typical to find factor scores by scoring the salient items (using, e.g.,score.items
factor scores can be estimated by regression.
Revelle, William. (in prep) An introduction to psychometric theory with applications in R. Springer. Working draft available at
principal
, VSS
, ICLUST
#using the Harman 24 mental tests, compare a principal factor with a principal components solution
pc <- principal(Harman74.cor$cov,4,rotate="varimax")
pa <- factor.pa(Harman74.cor$cov,4,rotate="varimax")
round(factor.congruence(pc,pa),2)
#then compare with a maximum likelihood solution using factanal
mle <- factanal(x,4,covmat=Harman74.cor$cov)
round(factor.congruence(mle,pa),2)
#note that the order of factors and the sign of some of factors differ
#finally, compare the unrotated factor and pca solutions
pc1 <- principal(Harman74.cor$cov,4,rotate="none")
pa1 <- factor.pa(Harman74.cor$cov,4,rotate="none")
round(factor.congruence(pc1,pa1),2)
#note that the order of factors and the sign of some of factors differ
Run the code above in your browser using DataLab