sla.factanal {RScaLAPACK} | R Documentation |
Perform maximum-likelihood factor analysis on a covariance matrix or data matrix using ScaLAPACK.
sla.factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA, subset, na.action, start = NULL, scores = c("none", "regression", "Bartlett"), rotation = "sla.varimax", control = NULL, NPROWS = 0, NPCOLS = 0, MB = 16, ...)
x |
Either a formula or a numeric matrix or an object that can be coerced to a numeric matrix. |
factors |
The number of factors to be fitted. |
data |
A data frame. |
covmat |
A covariance matrix, or a covariance list as returned by
|
n.obs |
The number of observations, used if |
subset |
A specification of the cases to be used, if |
na.action |
The |
start |
|
scores |
Type of scores to produce, if any. The default is none,
|
rotation |
character. |
control |
A list of control values,
|
NPROWS |
Number of Process Rows in the Process Grid. |
NPCOLS |
Number of Process Cols in the Process Grid. |
MB |
Block Size. |
... |
Components of |
The factor analysis model is
x = Lambda f + e
for a p–element row-vector x, a p x k matrix of loadings, a k–element vector of scores and a p–element vector of errors. None of the components other than x is observed, but the major restriction is that the scores be uncorrelated and of unit variance, and that the errors be independent with variances Phi, the uniquenesses. Thus factor analysis is in essence a model for the covariance matrix of x,
Sigma = Lambda'Lambda + Psi
There is still some indeterminacy in the model for it is unchanged if Lambda is replaced by G Lambda for any orthogonal matrix G. Such matrices G are known as rotations (although the term is applied also to non-orthogonal invertible matrices).
If covmat
is supplied it is used. Otherwise x
is used if
it is a matrix, or a formula x
is used with data
to
construct a model matrix, and that is used to construct a covariance
matrix. (It makes no sense for
the formula to have a response.) Once a covariance matrix is found or
calculated from x
, it is converted to a correlation matrix for
analysis. The correlation matrix is returned as component
correlation
of the result.
The fit is done by optimizing the log likelihood assuming multivariate
normality over the uniquenesses. (The maximizing loadings for given
uniquenesses can be found analytically: Lawley & Maxwell (1971,
p. 27).) All the starting values supplied in start
are tried
in turn and the best fit obtained is used. If start = NULL
then the first fit is started at the value suggested by Jreskog
(1963) and given by Lawley & Maxwell (1971, p. 31), and then
control$nstart - 1
other values are tried, randomly selected
as equal values of the uniquenesses.
The uniquenesses are technically constrained to lie in [0, 1],
but near-zero values are problematical, and the optimization is
done with a lower bound of control$lower
, default 0.005
(Lawley & Maxwell, 1971, p. 32).
Scores can only be produced if a data matrix is supplied and used. The first method is the regression method of Thomson (1951), the second the weighted least squares method of Bartlett (1937, 8). Both are estimates of the unobserved scores f. Thomson's method regresses (in the population) the unknown f on x to yield
hat f = Lambda' Sigma^-1 x
and then substitutes the sample estimates of the quantities on the right-hand side. Bartlett's method minimizes the sum of squares of standardized errors over the choice of f, given (the fitted) Lambda.
If x
is a formula then the standard NA-handling is applied to
the scores (if requested): see napredict
.
An object of class "factanal"
with components
loadings |
A matrix of loadings, one column for each factor. The factors are ordered in decreasing order of sums of squares of loadings, and given the sign that will make the sum of the loadings positive. |
uniquenesses |
The uniquenesses computed. |
correlation |
The correlation matrix used. |
criteria |
The results of the optimization: the value of the negative log-likelihood and information on the iterations used. |
factors |
The argument |
dof |
The number of degrees of freedom of the factor analysis model. |
method |
The method: always |
scores |
If requested, a matrix of scores. |
n.obs |
The number of observations if available, or |
call |
The matched call. |
na.action |
If relevant. |
STATISTIC, PVAL |
The significance-test statistic and P value, if if can be computed. |
At the current time, this function appears to be slower than the normal factanal function.
Nagiza Samatova (samatovan@ornl.gov), Guruprasad Kora (koragh@ornl.gov), Srikanth Yoginath (yoginathsb@ornl.gov), David Bauer (bauerda@ornl.gov)
Bartlett, M. S. (1937) The statistical conception of mental factors. British Journal of Psychology, 28, 97–104.
Bartlett, M. S. (1938) Methods of estimating mental factors. Nature, 141, 609–610.
Jreskog, K. G. (1963) Statistical Estimation in Factor Analysis. Almqvist and Wicksell.
Lawley, D. N. and Maxwell, A. E. (1971) Factor Analysis as a Statistical Method. Second edition. Butterworths.
Thomson, G. H. (1951) The Factorial Analysis of Human Ability. London University Press.
factanal
for the regular factanal function,
print.loadings
,
varimax
, sla.princomp
,
ability.cov
, Harman23.cor
,
Harman74.cor
# A little demonstration, v2 is just v1 with noise, # and same for v4 vs. v3 and v6 vs. v5 # Last four cases are there to add noise # and introduce a positive manifold (g factor) v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6) v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5) v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6) v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4) v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5) v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4) m1 <- cbind(v1,v2,v3,v4,v5,v6) cor(m1) sla.factanal(m1, factors=3, rotation="sla.promax", NPROWS=2, NPCOLS=2, MB=2 )