fareg {fungible} | R Documentation |
Regularized Factor Analysis
Description
This function applies the regularized factoring method to extract an unrotated factor structure matrix.
Usage
fareg(R, numFactors = 1, facMethod = "rls")
Arguments
R |
(Matrix) A correlation matrix to be analyzed. |
numFactors |
(Integer) The number of factors to extract. Default: numFactors = 1. |
facMethod |
(Character) "rls" for regularized least squares estimation or "rml" for regularized maximum likelihood estimation. Default: facMethod = "rls". |
Value
The main output is the matrix of unrotated factor loadings.
-
loadings: (Matrix) A matrix of unrotated factor loadings.
-
h2: (Vector) A vector of estimated communality values.
-
L: (Numeric) Value of the estimated penality parameter.
-
Heywood (Logical) TRUE if a Heywood case is detected (this should never happen).
Author(s)
Niels G. Waller (nwaller@umn.edu)
References
Jung, S. & Takane, Y. (2008). Regularized common factor analysis. New trends in psychometrics, 141-149.
See Also
Other Factor Analysis Routines:
BiFAD()
,
Box26
,
GenerateBoxData()
,
Ledermann()
,
SLi()
,
SchmidLeiman()
,
faAlign()
,
faEKC()
,
faIB()
,
faLocalMin()
,
faMB()
,
faMain()
,
faScores()
,
faSort()
,
faStandardize()
,
faX()
,
fals()
,
fapa()
,
fsIndeterminacy()
,
orderFactors()
,
print.faMB()
,
print.faMain()
,
promaxQ()
,
summary.faMB()
,
summary.faMain()
Examples
data("HW")
# load first HW data set
RHW <- cor(x = HW$HW6)
# Compute principal axis factor analysis
fapaOut <- faMain(R = RHW,
numFactors = 3,
facMethod = "fapa",
rotate = "oblimin",
faControl = list(treatHeywood = FALSE))
fapaOut$faFit$Heywood
round(fapaOut$h2, 2)
# Conduct a regularized factor analysis
regOut <- fareg(R = RHW,
numFactors = 3,
facMethod = "rls")
regOut$L
regOut$Heywood
# rotate regularized loadings and align with
# population structure
regOutRot <- faMain(urLoadings = regOut$loadings,
rotate = "oblimin")
# ALign
FHW <- faAlign(HW$popLoadings, fapaOut$loadings)$F2
Freg <- faAlign(HW$popLoadings, regOutRot$loadings)$F2
AllSolutions <- round(cbind(HW$popLoadings, Freg, FHW),2)
colnames(AllSolutions) <- c("F1", "F2", "F3", "Fr1", "Fr2", "Fr3",
"Fhw1", "Fhw2", "Fhw3")
AllSolutions
rmsdHW <- rmsd(HW$popLoadings, FHW,
IncludeDiag = FALSE,
Symmetric = FALSE)
rmsdReg <- rmsd(HW$popLoadings, Freg,
IncludeDiag = FALSE,
Symmetric = FALSE)
cat("\nrmsd HW = ", round(rmsdHW,3),
"\nrmsd reg = ", round(rmsdReg,3))