BiFAD  R Documentation 
This function estimates the (rankdeficient) Direct SchmidLeiman (DSL) bifactor solution as well as the (fullrank) 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 SchmidLeiman bifactor solution.
B: (Matrix) The target matrix used for the Procrustes rotation.
BstarSL: (Matrix) The resulting (rankdeficient) matrix of Direct SchmidLeiman factor loadings.
BstarFR: (Matrix) The resulting (fullrank) matrix of Direct Bifactor factor loadings.
rmsrSL: (Scalar) The root mean squared residual (rmsr) between the known B matrix and the estimated (rankdeficient) Direct SchmidLeiman 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 (fullrank) 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 SchmidLeiman orthogonalization and JennrichBentler analytic rotations. Multivariate Behavioral Research, 51(5), 698717.
Waller, N. G. (2018). Direct Schmid Leiman transformations and rank deficient loadings matrices. Psychometrika, 83, 858870.
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.