This function assesses discriminant validity through the heterotrait-monotrait ratio (HTMT) of the correlations (Henseler, Ringlet & Sarstedt, 2015). Specifically, it assesses the average correlation among indicators across constructs (i.e. heterotrait-heteromethod correlations), relative to the average correlation among indicators within the same construct (i.e. monotrait-heteromethod correlations). The resulting HTMT values are interpreted as estimates of inter-construct correlations. Absolute values of the correlations are recommended to calculate the HTMT matrix. Correlations are estimated using the lavCor function in the lavaan package.
htmt(model, data = NULL, sample.cov = NULL, missing = "listwise",
ordered = NULL, absolute = TRUE)
lavaan model.syntax of a confirmatory factor analysis model where at least two factors are required for indicators measuring the same construct.
A data.frame
or data matrix
A covariance or correlation matrix can be used, instead of
data
, to estimate the HTMT values.
If "listwise", cases with missing values are removed listwise from the data frame. If "direct" or "ml" or "fiml" and the estimator is maximum likelihood, an EM algorithm is used to estimate the unrestricted covariance matrix (and mean vector). If "pairwise", pairwise deletion is used. If "default", the value is set depending on the estimator and the mimic option (see details in lavCor).
Character vector. Only used if object is a data.frame
.
Treat these variables as ordered (ordinal) variables. Importantly, all other
variables will be treated as numeric (unless is.ordered == TRUE
in
data
). (see also lavCor)
logical. Whether HTMT values should be estimated based on
absolute correlations (recommended and default is TRUE
)
A matrix showing HTMT values (i.e., discriminant validity) between each pair of factors
Henseler, J., Ringle, C. M., & Sarstedt, M. (2015). A new criterion for assessing discriminant validity in variance-based structural equation modeling. Journal of the Academy of Marketing Science, 43(1), 115--135. doi:10.1007/s11747-014-0403-8
# NOT RUN {
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
dat <- HolzingerSwineford1939[, paste0("x", 1:9)]
htmt(HS.model, dat)
# }
Run the code above in your browser using DataLab