Start Using the neg.srmr()
Function
From the negligible
R package
Introduction
What is the purpose/goal of
neg.srmr()?
The function neg.srmr performs various equivalence tests for the SRMR fit index.
What is the theory behind
neg.srmr()?
The function will compare upper bound of the confidence interval (pertaining to the SRMR fit index) to upper bound of an equivalence interval (also known as an equivalence bound).
For more information on the theory behind these tests and choices of equivalence bounds see:
Beribisky, N., & Cribbie, R. A. (2023). Evaluating the performance of existing and novel equivalence tests for fit indices in structural equation modelling. British Journal of Mathematical and Statistical Psychology. 77(1), 103-129. https://doi.org/10.1111/bmsp.12317
Maydeu-Olivares, A. (2017). Assessing the size of model misfit in structural equation models. Psychometrika, 82(3), 533–558. https://doi.org/10.1007/s11336-016-9552-7
Shi, D., Maydeu-Olivares, A., & DiStefano, C. (2018). The relationship between the standardized root mean square residual and model misspecification in factor analysis models. Multivariate Behavioral Research, 53(5), 676-694. https://doi.org/10.1080/00273171.2018.1476221
Null and Alternate Hypotheses of the Procedure
\(H_{0}: SRMR_{pop} \ge MMES\)
\(H_{1}: SRMR_{pop} < MMES\)
Note that the MMES is the minimally meaningful effect size, as approximated by the equivalence bound.
Using neg.srmr()
Now let’s use the function. By default, doing so requires a fitted model object from lavaan.
Required arguments (no default)
mod: the fitted model object
eiU: upper bound of equivalence interval for SRMR for comparison; note that this value must be one of .05 or .10 if modif.eq.bound = TRUE
Optional arguments (has a default)
alpha: the optional argument for the alpha level (default is .05),
round: the optional argument for the number of digits to round equivalence bound and confidence interval bounds (default is 3),
modif.eq.bound: should the upper bound of the equivalence interval for SRMR be modified? (default is FALSE)
ci.method: method used to calculate confidence interval for SRMR; options are “MO” or “yhy.boot”; “MO” corresponds to (1-2alpha) percent CI, “yhy.boot” corresponds to (1-2alpha) percent boot CI (default is “MO”),
usrmr: fit index around which equivalence test should be structured. When usrmr = TRUE the usrmr from Maydeu-Olivares, 2017 will be used, otherwise srmr from fitmeasures() output in lavaan will be used (default is TRUE),
nboot: number of bootstrap samples if “yhy.boot” is selected as srmr.ci.method (default is 250L)
Examples
Example 1
First we need to create a model object using lavaan. Let’s use the Holzinger and Swineford dataset that is part of the lavaan package.
library(negligible)
library(lavaan)
d <- lavaan::HolzingerSwineford1939
hs.mod <- 'visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9'
fit1 <- lavaan::cfa(hs.mod, data = d)Now we can use the function. Let’s say that we just go with the defaults first.
---- Equivalence Based Fit Test for Unbiased SRMR ----
uSRMR index: 0.05800319
*************************************
Confidence Interval Method Selected: MO
Upper bound of 90% CI for SRMR: 0.074
*************************************
Modified Equivalence Bound: no
Equivalence Bound: 0.05
*************************************
Test Decision (comparing confidence interval to equivalence bound):
FAIL TO REJECT HO: The null hypothesis that the population SRMR exceeds the equivalence bound cannot be rejected.
Example 2
We can also use modified equivalence bounds. For instance, if we wanted to modify according to the adapted cutoff formula provided by Shi et al. 2018, we can change the input to the modif.eq.bound argument. Note that we can only do this because our equivalence bound for SRMR is .05 (it needs to be either .05 or .10 to apply this change).
---- Equivalence Based Fit Test for Unbiased SRMR and Modified Equivalence Interval ----
uSRMR index: 0.05800319
*************************************
Confidence Interval Method Selected: MO
Upper bound of 90% CI for SRMR: 0.074
*************************************
Modified Equivalence Bound: yes
Equivalence Bound: 0.025
*************************************
Test Decision (comparing confidence interval to equivalence bound):
FAIL TO REJECT HO: The null hypothesis that the population SRMR exceeds the equivalence bound cannot be rejected.
Extractable Elements
A number of elements of the output can be extracted, including:
usrmr Whether the unbiased SRMR is used for the equivalence test
srmr_index The SRMR index (USRMR or original SRMR depending on whether usrmr is TRUE or FALSE)
ci.method The confidence interval method selected for computing the upper bound of the confidence interval for the SRMR
alpha Nominal Type I error rate
srmr_ci The value of the upper bound of the confidence interval for SRMR
modif.eq.bound Whether a modified equivalence bound was used for the SRMR equivalence test
eq.bound The value of the equivalence bound used for the SRMR equivalence test
decision NHST decision for the SRMR equivalence test