Assess a model using common quality criteria. See the Postestimation: Assessing a model article on the cSEM website for details.
assess(
.object = NULL,
.only_common_factors = TRUE,
.quality_criterion = c("all", "ave", "rho_C", "rho_C_mm", "rho_C_weighted",
"rho_C_weighted_mm", "cronbachs_alpha",
"cronbachs_alpha_weighted", "dg", "dl", "dml", "df",
"esize", "cfi", "gfi", "ifi", "nfi", "nnfi",
"reliability",
"rmsea", "rms_theta", "srmr",
"gof", "htmt", "r2", "r2_adj",
"rho_T", "rho_T_weighted", "vif",
"vifmodeB", "fl_criterion"),
...
)
An R object of class cSEMResults resulting from a call to csem()
.
Logical. Should only concepts modeled as common
factors be included when calculating one of the following quality critera:
AVE, the Fornell-Larcker criterion, HTMT, and all reliability estimates.
Defaults to TRUE
.
Character string. A single character string or a vector of character strings naming the quality criterion to compute. See the Details section for a list of possible candidates. Defaults to "all" in which case all possible quality criteria are computed.
Further arguments passed to functions called by assess()
.
See args_assess_dotdotdot for a complete list of available arguments.
A named list of quality criteria. Note that if only a single quality criteria is computed the return value is still a list!
The function is essentially a wrapper around a number of internal functions that perform an "assessment task" (called a quality criterion in cSEM parlance) like computing reliability estimates, the effect size, the heterotrait-monotrait ratio of correlations (HTMT) etc.
By default every possible quality criterion is calculated (.quality_criterion = "all"
).
If only a subset of quality criteria are needed a single character string
or a vector of character strings naming the criteria to be computed may be
supplied to assess()
via the .quality_criterion
argument. Currently, the
following quality criteria are implemented (in alphabetical order):
An estimate of the
amount of variation in the indicators that is due to the underlying latent variable.
Practically, it is calculated as the ratio of the (indicator) true score variances
(i.e., the sum of the squared loadings)
relative to the sum of the total indicator variances. Calculation is done
by calculateAVE()
.
An estimate of the reliability assuming a congeneric measurement model (i.e., loadings are
allowed to differ) and a test score (proxy) based on unit weights.
There are four different versions implemented. See the
Methods and Formulae section
of the Postestimation: Assessing a model
article on the on the
cSEM website for details.
Alternative but synonemmous names for "rho_C_mm"
are:
composite reliability, construct reliablity, reliability coefficient,
Joereskog's rho, coefficient omega, or Dillon-Goldstein's rho.
For "rho_C_weighted_mm"
: (Dijkstra-Henselers) rhoA, or rhoB.
Calculation is done by calculateRhoC()
.
An estimate of the
reliability assuming a tau-equivalent measurement model (i.e., a measurement
model with equal loadings) and a test score (proxy) based on unit weights.
To compute Cronbach's alpha based on a score that uses the weights of the
weight approach used to obtain .object
, use "cronbachs_alpha_weighted"
instead.
Cronbach's alpha is an alias for "rho_T"
the tau-equivalent
reliability which is
the prefered name for this kind of reliability in cSEM, as it clearly states what
it actually estimates (the tau-equivalent reliability as opposed to
the congeneric reliability). "rho_T" and "cronbachs_alpha" are therefore
always identical. Calculation is done by calculateRhoT()
Measures of the distance
between the model-implied and the empirical indicator correlation matrix.
Currently, the geodesic distance ("dg"
), the squared Euclidian distance
("dl"
) and the the maximum likelihood-based distance function are implemented
("dml"
). Calculation is done by calculateDL()
, calculateDG()
,
and calculateDML()
.
Returns the degrees of freedom. Calculation is done by calculateDf()
.
An index of the effect size of an independent
variable in a structural regression equation. The effect size of the k'th
independent variable in this case
is definied as the ratio (R2_included - R2_excluded)/(1 - R2_included), where
R2_included and R2_excluded are the R squares of the
original structural model regression equation (R2_included) and the
alternative specification with the k'th variable dropped (R2_excluded).
This measure is commonly known as Cohen's f^2.
Calculation is done by calculateEffectSize()
.
Several absolute and incremental fit indices. Note that their suitability
for models containing constructs modeled as common factors is still an
open research question. Also note that fit indices are not tests in a
hypothesis testing sense and
decisions based on common cut-offs proposed in the literature should be
considered with caution!. Calculation is done by calculateCFI()
,
calculateGFI()
, calculateIFI()
, calculateNFI()
, calculateNNFI()
,
calculateRMSEA()
, calculateRMSTheta()
and calculateSRMR()
.
A rule suggested by Fornell1981;textualcSEM
to assess discriminant validity. The Fornell-Larcker
criterion is a decision rule based on a comparison between the squared
construct correlations and the average variance extracted. FL returns
a matrix with the squared construct correlations on the off-diagonal and
the AVE's on the main diagonal. Calculation is done by assess()
.
The GoF is defined as the square root
of the mean of the R squares of the structural model times the mean
of the variances in the indicators that are explained by their
related constructs (i.e., the average over all lambda^2_k).
For the latter, only constructs modeled as common factors are considered
as they explain their indicator variance in contrast to a composite where
indicators actually build the construct.
Note that, contrary to what the name suggests, the GoF is not a
measure of model fit in a Chi-square fit test sense. Calculation is done
by calculateGoF()
.
An estimate of the latent variable correlation used to assess
convergent and/or discriminant validity of a construct. Calculation is done
by calculateHTMT()
.
As described in the Methods and Formulae
section of the Postestimation: Assessing a model
article on the on the cSEM website
there are many different estimators for the (internal consistency) reliability.
Choosing .quality_criterion = "reliability"
computes the three most common
measures, namely: "Cronbachs alpha" (identical to "rho_T"), "J<U+00F6>reskogs rho" (identical to "rho_C_mm"),
and "Dijkstra-Henselers rho A" (identical to "rho_C_weighted_mm").
The R square and the adjusted
R square for each structural regression equation.
Calculated when running csem()
.
An estimate of the
reliability assuming a tau-equivalent measurement model (i.e. a measurement
model with equal loadings) and a test score (proxy) based on unit weights.
Tau-equivalent reliability is the preferred name for reliability estimates
that assume a tau-equivalent measurment model such as Cronbach's alpha.
Calculation is done by calculateRhoT()
.
An index for the amount of (multi-)
collinearity between independent variables of a regression equation. Computed
for each structural equation. Practically, VIF_k is defined
as the ratio of 1 over (1 - R2_k) where R2_k is the R squared from a regression
of the k'th independent variable on all remaining independent variables.
Calculated when running csem()
.
An index for
the amount of (multi-) collinearity between independent variables (indicators) in
mode B regression equations. Computed only if .object
was obtained using
.weight_approach = "PLS-PM"
and at least one mode was mode B.
Practically, VIF-ModeB_k is defined as the ratio of 1 over (1 - R2_k) where
R2_k is the R squared from a regression of the k'th indicator of block j on
all remaining indicators of the same block.
Calculation is done by calculateVIFModeB()
.
For details on the most important quality criteria see the Methods and Formulae section of the Postestimation: Assessing a model article on the on the cSEM website.
Some of the quality criteria are inherently tied to the classical common
factor model and therefore only meaningfully interpreted within a common
factor model (see the
Postestimation: Assessing a model
article for details).
It is possible to force computation of all quality criteria for constructs
modeled as composites by setting .only_common_factors = FALSE
, however,
we explicitly warn to interpret quality criteria in this case with caution,
as they may not even have a conceptual meaning.
To resample a given quality criterion supply the name of the function
that calculates the desired quality criterion to csem()
's .user_funs
argument.
See resamplecSEMResults()
for details.
# NOT RUN {
# ===========================================================================
# Using the threecommonfactors dataset
# ===========================================================================
model <- "
# Structural model
eta2 ~ eta1
eta3 ~ eta1 + eta2
# Each concept is measured by 3 indicators, i.e., modeled as latent variable
eta1 =~ y11 + y12 + y13
eta2 =~ y21 + y22 + y23
eta3 =~ y31 + y32 + y33
"
res <- csem(threecommonfactors, model)
a <- assess(res) # computes all quality criteria (.quality_criterion = "all")
a
## The return value is a named list
a$HTMT
# You may also just compute a subset of the quality criteria
assess(res, .quality_criterion = c("ave", "rho_C", "htmt"))
## Resampling ---------------------------------------------------------------
# To resample a given quality criterion use csem()'s .user_funs argument
# Note: The output of the quality criterion needs to be a vector or a matrix.
# Matrices will be vectorized columnwise.
res <- csem(threecommonfactors, model,
.resample_method = "bootstrap",
.R = 40,
.user_funs = cSEM:::calculateHTMT
)
## Look at the resamples
res$Estimates$Estimates_resample$Estimates1$User_fun$Resampled[1:4, ]
## Use infer() to compute e.g. the 95% percentile confidence interval
res_infer <- infer(res, .quantity = "CI_percentile")
res_infer$User_fun
# }
Run the code above in your browser using DataCamp Workspace