bifactorIndices {BifactorIndicesCalculator} | R Documentation |
bifactorIndices
Description
Computes all available bifactor indices for the input given.
Usage
bifactorIndices(
Lambda,
Theta = NULL,
UniLambda = NULL,
standardized = TRUE,
Phi = NULL,
Thresh = NULL
)
Arguments
Lambda |
is a matrix of factor loadings or an object that can be converted to a
matrix of factor loadings by |
Theta |
is a vector of residual variances. If omitted, |
UniLambda |
is a matrix of factor loadings or an object that can be converted to
a matrix of factor loadings such as a fitted lavaan objects or fitted mirt
object. Defaults to |
standardized |
lets the function know whether to look for standardized or
unstandardized results from lavaan and defaults to |
Phi |
is the correlation matrix of factors and defaults to |
Thresh |
is a list of vectors of item thresholds, used only when items are categorical. |
Details
Currently, factor loading matrices, fitted lavaan objects, and fitted mirt
objects are supported. For Mplus
output, see bifactorIndicesMplus
.
IRT parameters from mirt are converted to standardized factor loadings via the
correspondence described in Kamata & Bauer (2008). If you wish to use standardized
coefficients, item error variance will be computed directly from standardized factor
loadings. ARPB
will only be computed if the factor loadings from a unidimensional model
are included, while ECV_GS
and ECV_SG
will only be computed for
models with a general factor, and PUC
will only be conputed for a true bifactor
model. Note that if a correlated traits model is provided, the omega indices
will simply be the regular omega values for those factors. Interpretations for individual
indices as well as details about their computation can be found in the man page for the
individual indices.
Formulas for all indices can be found in Rodriguez et al. (2016). When indicators are categorical, the methodology of Green and Yang (2009) is used for computing Omega and OmegaH.
Value
A list of bifactor indices, including three different ECV indices, IECV, PUC, Omega, OmegaH, Factor Determinacy (FD), Construct Replicability (H) and ARPB. Please note that many of these indices are interpretable even when the model being used is not a bifactor model; some indices may be useful for two-tier, trifactor, correlated traits, and even unidimensional models.
References
Green, S. B., & Yang, Y. (2009). Reliability of summed item scores using structural equation modeling: An alternative to coefficient alpha. Psychometrika, 74(1), 155-167 doi: 10.1007/s11336-008-9099-3.
Kamata, A., & Bauer, D. J. (2008). A note on the relation between factor analytic and item response theory models. Structural Equation Modeling: A Multidisciplinary Journal, 15 (1), 136-153.
#' Rodriguez, A., Reise, S. P., & Haviland, M. G. (2016). Evaluating bifactor models: calculating and interpreting statistical indices. Psychological Methods, 21(2), 137 doi: 10.1037/met0000045.
See Also
bifactorIndicesMplus
,
bifactorIndices_expl
,
bifactorIndicesMplus_expl
,
bifactorIndicesMplus_ESEM
,
ECV_SS
,
ECV_SG
,
ECV_GS
,
IECV
,
PUC
,
Omega_S
,
Omega_H
,
cat_Omega_S
,
cat_Omega_H
,
H
,
FD
,
ARPB
Examples
# Computing bifactor indices from fitted lavaan object
# (using mirt object is similar). Use of the unidimensional
# model is optional; it is only used to compute ARPB.
SRS_UnidimensionalModel <-
"SRS =~ SRS_1 + SRS_2 + SRS_3 + SRS_4 + SRS_5 +
SRS_6 + SRS_7 + SRS_8 + SRS_9 + SRS_10 +
SRS_11 + SRS_12 + SRS_13 + SRS_14 + SRS_15 +
SRS_16 + SRS_17 + SRS_18 + SRS_19 + SRS_20"
SRS_Unidimensional <- lavaan::cfa(SRS_UnidimensionalModel,
SRS_data,
ordered = paste0("SRS_", 1:20),
orthogonal = TRUE)
SRS_BifactorModel <-
"SRS =~ SRS_1 + SRS_2 + SRS_3 + SRS_4 + SRS_5 +
SRS_6 + SRS_7 + SRS_8 + SRS_9 + SRS_10 +
SRS_11 + SRS_12 + SRS_13 + SRS_14 + SRS_15 +
SRS_16 + SRS_17 + SRS_18 + SRS_19 + SRS_20
Function =~ SRS_5 + SRS_9 + SRS_12 + SRS_15 + SRS_18
Pain =~ SRS_1 + SRS_2 + SRS_8 + SRS_11 + SRS_17
SelfImage =~ SRS_4 + SRS_6 + SRS_10 + SRS_14 + SRS_19
MentalHealth =~ SRS_3 + SRS_7 + SRS_13 + SRS_16 + SRS_20"
SRS_bifactor <- lavaan::cfa(SRS_BifactorModel,
SRS_data,
ordered = paste0("SRS_", 1:20),
orthogonal = TRUE)
bifactorIndices(SRS_bifactor, UniLambda = SRS_Unidimensional)
# Computing bifactor indices from standardized factor loading matrices
Lambda <- matrix(c(.82, .10, 0, 0,
.77, .35, 0, 0,
.79, .32, 0, 0,
.66, .39, 0, 0,
.51, 0, .71, 0,
.56, 0, .43, 0,
.68, 0, .13, 0,
.60, 0, .50, 0,
.83, 0, 0, .47,
.60, 0, 0, .27,
.78, 0, 0, .28,
.55, 0, 0, .75),
ncol = 4, byrow = TRUE)
colnames(Lambda) <- c("General", "SF1", "SF2", "SF3")
bifactorIndices(Lambda)
# bifactorIndices can also be used on two-tier models
MTMM_model <- "
Trait1 =~ T1M1_1 + T1M1_2 + T1M1_3 +
T1M2_1 + T1M2_2 + T1M2_3 +
T1M3_1 + T1M3_2 + T1M3_3
Trait2 =~ T2M1_1 + T2M1_2 + T2M1_3 +
T2M2_1 + T2M2_2 + T2M2_3 +
T2M3_1 + T2M3_2 + T2M3_3
Trait3 =~ T3M1_1 + T3M1_2 + T3M1_3 +
T3M2_1 + T3M2_2 + T3M2_3 +
T3M3_1 + T3M3_2 + T3M3_3
Method1 =~ T1M1_1 + T1M1_2 + T1M1_3 +
T2M1_1 + T2M1_2 + T2M1_3 +
T3M1_1 + T3M1_2 + T3M1_3
Method2 =~ T1M2_1 + T1M2_2 + T1M2_3 +
T2M2_1 + T2M2_2 + T2M2_3 +
T3M2_1 + T3M2_2 + T3M2_3
Method3 =~ T1M3_1 + T1M3_2 + T1M3_3 +
T2M3_1 + T2M3_2 + T2M3_3 +
T3M3_1 + T3M3_2 + T3M3_3
Trait1 ~~ 0*Method1
Trait1 ~~ 0*Method2
Trait1 ~~ 0*Method3
Trait2 ~~ 0*Method1
Trait2 ~~ 0*Method2
Trait2 ~~ 0*Method3
Trait3 ~~ 0*Method1
Trait3 ~~ 0*Method2
Trait3 ~~ 0*Method3
Method1 ~~ 0*Method2
Method1 ~~ 0*Method3
Method2 ~~ 0*Method3"
MTMM_fit <- lavaan::cfa(MTMM_model, MTMM_data)
bifactorIndices(MTMM_fit)