BiFAD | R Documentation |
This function estimates the (rank-deficient) Direct Schmid-Leiman (DSL) bifactor solution as well as the (full-rank) Direct Bifactor (DBF) solution.
BiFAD(
R,
B = NULL,
numFactors = NULL,
facMethod = "fals",
rotate = "oblimin",
salient = 0.25,
rotateControl = NULL,
faControl = NULL
)
R |
(Matrix) A correlation matrix. |
B |
(Matrix) Bifactor target matrix. If B is NULL the program will create an empirically defined target matrix. |
numFactors |
(Numeric) The number of group factors to estimate. |
facMethod |
(Character) The method used for factor extraction
(
|
rotate |
(Character) Designate which rotation algorithm to apply. See the |
salient |
(Numeric) Threshold value for creating an empirical target matrix. |
rotateControl |
(List) A list of control values to pass to the factor rotation algorithms.
|
faControl |
(List) A list of optional parameters passed to the factor
extraction (
|
The following output are returned in addition to the estimated Direct Schmid-Leiman bifactor solution.
B: (Matrix) The target matrix used for the Procrustes rotation.
BstarSL: (Matrix) The resulting (rank-deficient) matrix of Direct Schmid-Leiman factor loadings.
BstarFR: (Matrix) The resulting (full-rank) matrix of Direct Bifactor factor loadings.
rmsrSL: (Scalar) The root mean squared residual (rmsr) between the known B matrix and the estimated (rank-deficient) Direct Schmid-Leiman rotation. If the B target matrix is empirically generated, this value is NULL.
rmsrFR: (Scalar) The root mean squared residual (rmsr) between the known B matrix and the estimated (full-rank) Direct Bifactor rotation. If the B target matrix is empirically generated, this value is NULL.
Niels G. Waller (nwaller@umn.edu)
Giordano, C. & Waller, N. G. (under review). Recovering bifactor models: A comparison of seven methods.
Mansolf, M., & Reise, S. P. (2016). Exploratory bifactor analysis: The Schmid-Leiman orthogonalization and Jennrich-Bentler analytic rotations. Multivariate Behavioral Research, 51(5), 698-717.
Waller, N. G. (2018). Direct Schmid Leiman transformations and rank deficient loadings matrices. Psychometrika, 83, 858-870.
Other Factor Analysis Routines:
Box26
,
GenerateBoxData()
,
Ledermann()
,
SLi()
,
SchmidLeiman()
,
faAlign()
,
faEKC()
,
faIB()
,
faLocalMin()
,
faMB()
,
faMain()
,
faScores()
,
faSort()
,
faStandardize()
,
faX()
,
fals()
,
fapa()
,
fareg()
,
fsIndeterminacy()
,
orderFactors()
,
print.faMB()
,
print.faMain()
,
promaxQ()
,
summary.faMB()
,
summary.faMain()
cat("\nExample 1:\nEmpirical Target Matrix:\n")
# Mansolf and Reise Table 2 Example
Btrue <- matrix(c(.48, .40, 0, 0, 0,
.51, .35, 0, 0, 0,
.67, .62, 0, 0, 0,
.34, .55, 0, 0, 0,
.44, 0, .45, 0, 0,
.40, 0, .48, 0, 0,
.32, 0, .70, 0, 0,
.45, 0, .54, 0, 0,
.55, 0, 0, .43, 0,
.33, 0, 0, .33, 0,
.52, 0, 0, .51, 0,
.35, 0, 0, .69, 0,
.32, 0, 0, 0, .65,
.66, 0, 0, 0, .51,
.68, 0, 0, 0, .39,
.32, 0, 0, 0, .56), 16, 5, byrow=TRUE)
Rex1 <- Btrue %*% t(Btrue)
diag(Rex1) <- 1
out.ex1 <- BiFAD(R = Rex1,
B = NULL,
numFactors = 4,
facMethod = "fals",
rotate = "oblimin",
salient = .25)
cat("\nRank Deficient Bifactor Solution:\n")
print( round(out.ex1$BstarSL, 2) )
cat("\nFull Rank Bifactor Solution:\n")
print( round(out.ex1$BstarFR, 2) )
cat("\nExample 2:\nUser Defined Target Matrix:\n")
Bpattern <- matrix(c( 1, 1, 0, 0, 0,
1, 1, 0, 0, 0,
1, 1, 0, 0, 0,
1, 1, 0, 0, 0,
1, 0, 1, 0, 0,
1, 0, 1, 0, 0,
1, 0, 1, 0, 0,
1, 0, 1, 0, 0,
1, 0, 0, 1, 0,
1, 0, 0, 1, 0,
1, 0, 0, 1, 0,
1, 0, 0, 1, 0,
1, 0, 0, 0, 1,
1, 0, 0, 0, 1,
1, 0, 0, 0, 1,
1, 0, 0, 0, 1), 16, 5, byrow=TRUE)
out.ex2 <- BiFAD(R = Rex1,
B = Bpattern,
numFactors = NULL,
facMethod = "fals",
rotate = "oblimin",
salient = .25)
cat("\nRank Deficient Bifactor Solution:\n")
print( round(out.ex2$BstarSL, 2) )
cat("\nFull Rank Bifactor Solution:\n")
print( round(out.ex2$BstarFR, 2) )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.