This function computes the Bartlett, Anderson and Lawley indices for determining the number of components/factors to retain.
nBartlett(x, N, alpha = 0.05, cor = TRUE, details = TRUE,
correction = TRUE, ...)
numeric: vector of the number of factors retained by the Bartlett, Anderson and Lawley procedures.
numeric: matrix of the details for each index.
numeric: a vector
of eigenvalues, a matrix
of correlations or of covariances or a data.frame
of data (eigenFrom)
numeric: number of subjects
numeric: statistical significance level
logical: if TRUE
computes eigenvalues from a correlation matrix, else from a covariance matrix
logical: if TRUE
also returns detains about the computation for each eigenvalue
logical: if TRUE
uses a correction for the degree of freedom after the first eigenvalue
variable: additionnal parameters to give to the cor
or cov
functions
Gilles Raiche
Centre sur les Applications des Modeles de
Reponses aux Items (CAMRI)
Universite du Quebec a Montreal
raiche.gilles@uqam.ca
Note: the latex formulas are available only in the pdf version of this help file.
The hypothesis tested is:
(1) \(\qquad \qquad H_k: \lambda_{k+1} = \ldots = \lambda_p\)
This hypothesis is verified by the application of different version of a
\(\chi^2\) test with different values for the degrees of freedom.
Each of these tests shares the compution of a \(V_k\) value:
(2) \(\qquad \qquad V_k = \prod\limits_{i = k + 1}^p \left\{ \frac{\displaystyle \lambda_i}{\frac{1}{q}\sum\limits_{i = k + 1}^p {\lambda _i } } \right\} \)
\(p\) is the number of eigenvalues, \(k\) the number of eigenvalues to test,
and \(q\) the \(p-k\) remaining eigenvalues. \(n\) is equal to the sample size
minus 1 (\(n = N-1\)).
The Anderson statistic is distributed as a \(\chi^2\) with \((q + 2)(q - 1)/2\) degrees
of freedom and is equal to:
(3) \(\qquad \qquad - n\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 \)
An improvement of this statistic from Bartlett (Bentler, and Yuan, 1996, p. 300;
Horn and Engstrom, 1979, equation 8) is distributed as a \(\chi^2\)
with \((q)(q - 1)/2\) degrees of freedom and is equal to:
(4) \(\qquad \qquad - \left[ {n - k - {{2q^2 q + 2} \over {6q}}}
\right]\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 \)
Finally, Anderson (1956) and James (1969) proposed another statistic.
(5) \(\qquad \qquad - \left[ {n - k - {{2q^2 q + 2} \over {6q}}
+ \sum\limits_{i = 1}^k {{{\bar \lambda _q^2 } \over {\left( {\lambda _i
- \bar \lambda _q } \right)^2 }}} } \right]\log (V_k ) \sim \chi _{(q + 2)(q - 1)/2}^2 \)
Bartlett (1950, 1951) proposed a correction to the degrees of freedom of these \(\chi^2\) after the
first significant test: \((q+2)(q - 1)/2\).
Anderson, T. W. (1963). Asymptotic theory for principal component analysis. Annals of Mathematical Statistics, 34, 122-148.
Bartlett, M. S. (1950). Tests of significance in factor analysis. British Journal of Psychology, 3, 77-85.
Bartlett, M. S. (1951). A further note on tests of significance. British Journal of Psychology, 4, 1-2.
Bentler, P. M. and Yuan, K.-H. (1996). Test of linear trend in eigenvalues of a covariance matrix with application to data analysis. British Journal of Mathematical and Statistical Psychology, 49, 299-312.
Bentler, P. M. and Yuan, K.-H. (1998). Test of linear trend in the smallest eigenvalues of the correlation matrix. Psychometrika, 63(2), 131-144.
Horn, J. L. and Engstrom, R. (1979). Cattell's scree test in relation to Bartlett's chi-square test and other observations on the number of factors problem. Multivariate Behavioral Reasearch, 14(3), 283-300.
James, A. T. (1969). Test of equality of the latent roots of the covariance matrix. In P. K. Krishna (Eds): Multivariate analysis, volume 2.New-York, NJ: Academic Press.
Lawley, D. N. (1956). Tests of significance for the latent roots of covarianceand correlation matrix. Biometrika, 43(1/2), 128-136.
plotuScree
, nScree
, plotnScree
, plotParallel
## ................................................
## SIMPLE EXAMPLE OF A BARTLETT PROCEDURE
data(dFactors)
eig <- dFactors$Raiche$eigenvalues
results <- nBartlett(x=eig, N= 100, alpha=0.05, details=TRUE)
results
plotuScree(eig, main=paste(results$nFactors[1], ", ",
results$nFactors[2], " or ",
results$nFactors[3],
" factors retained by the LRT procedures",
sep=""))
Run the code above in your browser using DataLab