
This function computes factor scores by various methods. The function will acceptan an
object of class faMain
or, alternatively, user-input factor pattern (i.e., Loadings
) and
factor correlation (Phi
) matrices.
faScores(
X = NULL,
faMainObject = NULL,
Loadings = NULL,
Phi = NULL,
Method = "Thurstone"
)
fscores A matrix om common factor score estimates.
Method The method used to create the factor score estimates.
W The factor scoring coefficient matrix.
Z A matrix of standardized data used to create the estimated factor scores.
(Matrix) An N x
variables data matrix. If X is a matrix of raw scores then
faScores
will convert the data to z scores.
(Object of class faMain) The returned object from a call to faMain. Default = NULL
(Matrix) A factor pattern matrix. Default = NULL.
(Matrix) A factor correlation matrix. Default = NULL. If a factor pattern
is entered via the Loadings argument but Phi = NULL the program
will set Phi
to an identity matrix.
(Character) Factor scoring method. Defaults to the Thurstone or regression based method. Available options include:
Thurstone Generates regression based factor score estimates.
Bartlett Generates Bartlett method factor score estimates.
tenBerge Generates factor score estimates with correlations identical to that found in Phi.
Anderson The Anderson Rubin method. Generates uncorrelated factor score estimates. This method is only appropriate for orthogonal factor models.
Harman Generates estimated factor scores by Harman's idealized variables method.
PCA Returns unrotated principal component scores.
Niels Waller
faScores can be used to calculate estimated factor scores by various methods. In general, to calculate score estimates, users must input a data matrix X and either (a) an object of class faMain or (b) a factor loadings matrix, Loadings and an optional (for oblique models) factor correlation matrix Phi. The one exception to this rule concerns scores for the principal components model. To calculate unrotated PCA scores (i.e., when Method = "PCA") users need only enter a data matrix, X.
Bartlett, M. S. (1937). The statistical conception of mental factors.British Journal of Psychology, 28,97-104.
Grice, J. (2001). Computing and evaluating factor scores. Psychological Methods, 6(4), 430-450.
Harman, H. H. (1976). Modern factor analysis. University of Chicago press.
McDonald, R. P. and Burr, E. J. (1967). A Comparison of Four Methods of Constructing Factor Scores. Psychometrika, 32, 381-401.
Ten Berge, J. M. F., Krijnen, W. P., Wansbeek, T., and Shapiro, A. (1999). Some new results on correlation-preserving factor scores prediction methods. Linear Algebra and its Applications, 289(1-3), 311-318.
Tucker, L. (1971). Relations of factor score estimates to their use. Psychometrika, 36, 427-436.
Other Factor Analysis Routines:
BiFAD()
,
Box26
,
GenerateBoxData()
,
Ledermann()
,
SLi()
,
SchmidLeiman()
,
faAlign()
,
faEKC()
,
faIB()
,
faLocalMin()
,
faMB()
,
faMain()
,
faSort()
,
faStandardize()
,
faX()
,
fals()
,
fapa()
,
fareg()
,
fsIndeterminacy()
,
orderFactors()
,
print.faMB()
,
print.faMain()
,
promaxQ()
,
summary.faMB()
,
summary.faMain()
lambda.Pop <- matrix(c(.41, .00, .00,
.45, .00, .00,
.53, .00, .00,
.00, .66, .00,
.00, .38, .00,
.00, .66, .00,
.00, .00, .68,
.00, .00, .56,
.00, .00, .55),
nrow = 9, ncol = 3, byrow = TRUE)
NVar <- nrow(lambda.Pop)
NFac <- 3
## Factor correlation matrix
Phi.Pop <- matrix(.50, nrow = 3, ncol = 3)
diag(Phi.Pop) <- 1
#Model-implied correlation matrix
R <- lambda.Pop %*% Phi.Pop %*% t(lambda.Pop)
diag(R) <- 1
#Generate population data to perfectly reproduce pop R
Out <- simFA( Model = list(Model = "oblique"),
Loadings = list(FacPattern = lambda.Pop),
Phi = list(PhiType = "user",
UserPhi = Phi.Pop),
FactorScores = list(FS = TRUE,
CFSeed = 1,
SFSeed = 2,
EFSeed = 3,
Population = TRUE,
NFacScores = 100),
Seed = 1)
PopFactorScores <- Out$Scores$FactorScores
X <- PopObservedScores <- Out$Scores$ObservedScores
fout <- faMain(X = X,
numFactors = 3,
facMethod = "fals",
rotate = "oblimin")
print( round(fout$loadings, 2) )
print( round(fout$Phi,2) )
fload <- fout$loadings
Phi <- fout$Phi
fsOut <- faScores(X = X,
faMainObject = fout,
Method = "Thurstone")
fscores <- fsOut$fscores
print( round(cor(fscores), 2 ))
print(round(Phi,2))
CommonFS <- PopFactorScores[,1:NFac]
SpecificFS <-PopFactorScores[ ,(NFac+1):(NFac+NVar)]
ErrorFS <- PopFactorScores[ , (NFac + NVar + 1):(NFac + 2*NVar) ]
print( cor(fscores, CommonFS) )
Run the code above in your browser using DataLab