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.

neg.srmr(mod = fit1, eq.bound = .05)
---- 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).

neg.srmr(mod = fit1,  
           eq.bound = .05, modif.eq.bound = TRUE)
---- 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

LS0tDQp0aXRsZTogIlN0YXJ0IFVzaW5nIHRoZSBgbmVnLnNybXIoKWAgRnVuY3Rpb24iDQpzdWJ0aXRsZTogfCANCiAgICBGcm9tIHRoZSBbYG5lZ2xpZ2libGVgXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvbmVnbGlnaWJsZS9pbmRleC5odG1sKSBSIHBhY2thZ2UhW10oSTovTXkgRHJpdmUvUmVzZWFyY2gvQ3JpYmJpZSBMYWIvbmVnbGlnaWJsZSBWaWduZXR0ZXMvVGVtcGxhdGUvbmVnLmxvZ28ucG5nKXt3aWR0aD0xMCV9ICANCmF1dGhvcjogIltOYXRhbHkgQmVyaWJpc2t5IGFuZCBSb2IgQ3JpYmJpZV0iDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCkpYCINCm91dHB1dDoNCiAgcm1kZm9ybWF0czo6cm9ib2Jvb2s6DQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KLS0tDQoNCmBgYHtyIHNldHVwLCBlY2hvPUZBTFNFLCBjYWNoZT1GQUxTRSwgbWVzc2FnZXM9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojaW5zdGFsbC5wYWNrYWdlcygicm1kZm9ybWF0cyIpDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMobGlicmFyeShybWRmb3JtYXRzLCB3YXJuLmNvbmZsaWN0cz1GQUxTRSkpDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMobGlicmFyeShrbml0ciwgd2Fybi5jb25mbGljdHM9RkFMU0UpKQ0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkodGlkeXZlcnNlLCB3YXJuLmNvbmZsaWN0cz1GQUxTRSkpDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMobGlicmFyeShwbG90bHksIHdhcm4uY29uZmxpY3RzPUZBTFNFKSkNCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KHJlYWR4bCwgd2Fybi5jb25mbGljdHM9RkFMU0UpKQ0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkocGxvdGx5LCB3YXJuLmNvbmZsaWN0cz1GQUxTRSkpDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMobGlicmFyeShNZXRCcmV3ZXIsIHdhcm4uY29uZmxpY3RzPUZBTFNFKSkNCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KGdnYW5pbWF0ZSwgd2Fybi5jb25mbGljdHM9RkFMU0UpKQ0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkoZHBseXIsIHdhcm4uY29uZmxpY3RzPUZBTFNFKSkNCg0KIyMgR2xvYmFsIG9wdGlvbnMNCm9wdGlvbnMobWF4LnByaW50PSI3NSIpDQpvcHRzX2NodW5rJHNldChlY2hvPVRSVUUsDQoJICAgICAgICAgICAgIGNhY2hlPVRSVUUsDQogICAgICAgICAgICAgICBwcm9tcHQ9RkFMU0UsDQogICAgICAgICAgICAgICBjb21tZW50PU5BLA0KICAgICAgICAgICAgICAgbWVzc2FnZT1GQUxTRSwNCiAgICAgICAgICAgICAgIHdhcm5pbmc9RkFMU0UpDQpvcHRzX2tuaXQkc2V0KHdpZHRoPTc1KQ0KYGBgDQoNCjxici8+DQoNCiMjICoqSW50cm9kdWN0aW9uKioNCg0KDQoNCiMjIyAqKldoYXQgaXMgdGhlIHB1cnBvc2UvZ29hbCBvZiBgbmVnLnNybXIoKWA/KioNCg0KVGhlIGZ1bmN0aW9uIG5lZy5zcm1yIHBlcmZvcm1zIHZhcmlvdXMgZXF1aXZhbGVuY2UgdGVzdHMgZm9yIHRoZSBTUk1SIGZpdCBpbmRleC4NCg0KDQojIyMgKipXaGF0IGlzIHRoZSB0aGVvcnkgYmVoaW5kIGBuZWcuc3JtcigpYD8qKg0KDQpUaGUgZnVuY3Rpb24gd2lsbCBjb21wYXJlIHVwcGVyIGJvdW5kIG9mIHRoZSBjb25maWRlbmNlIGludGVydmFsIChwZXJ0YWluaW5nIHRvIHRoZSBTUk1SIGZpdCBpbmRleCkgdG8gdXBwZXIgYm91bmQgb2YgYW4gZXF1aXZhbGVuY2UgaW50ZXJ2YWwgKGFsc28ga25vd24gYXMgYW4gZXF1aXZhbGVuY2UgYm91bmQpLg0KDQpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgdGhlb3J5IGJlaGluZCB0aGVzZSB0ZXN0cyBhbmQgY2hvaWNlcyBvZiBlcXVpdmFsZW5jZSBib3VuZHMgc2VlOg0KDQpCZXJpYmlza3ksIE4uLCAmIENyaWJiaWUsIFIuIEEuICgyMDIzKS4gRXZhbHVhdGluZyB0aGUgcGVyZm9ybWFuY2Ugb2YgZXhpc3RpbmcgYW5kIG5vdmVsIGVxdWl2YWxlbmNlIHRlc3RzIGZvciBmaXQgaW5kaWNlcyBpbiBzdHJ1Y3R1cmFsIGVxdWF0aW9uIG1vZGVsbGluZy4gQnJpdGlzaCBKb3VybmFsIG9mIE1hdGhlbWF0aWNhbCBhbmQgU3RhdGlzdGljYWwgUHN5Y2hvbG9neS4gNzcoMSksIDEwMy0xMjkuIGh0dHBzOi8vZG9pLm9yZy8xMC4xMTExL2Jtc3AuMTIzMTcNCg0KTWF5ZGV1LU9saXZhcmVzLCBBLiAoMjAxNykuIEFzc2Vzc2luZyB0aGUgc2l6ZSBvZiBtb2RlbCBtaXNmaXQgaW4gc3RydWN0dXJhbCBlcXVhdGlvbiBtb2RlbHMuIFBzeWNob21ldHJpa2EsIDgyKDMpLCA1MzPigJM1NTguIGh0dHBzOi8vZG9pLm9yZy8xMC4xMDA3L3MxMTMzNi0wMTYtOTU1Mi03DQoNClNoaSwgRC4sIE1heWRldS1PbGl2YXJlcywgQS4sICYgRGlTdGVmYW5vLCBDLiAoMjAxOCkuIFRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGUgc3RhbmRhcmRpemVkIHJvb3QgbWVhbiBzcXVhcmUgcmVzaWR1YWwgYW5kIG1vZGVsIG1pc3NwZWNpZmljYXRpb24gaW4gZmFjdG9yIGFuYWx5c2lzIG1vZGVscy4gTXVsdGl2YXJpYXRlIEJlaGF2aW9yYWwgUmVzZWFyY2gsIDUzKDUpLCA2NzYtNjk0LiBodHRwczovL2RvaS5vcmcvMTAuMTA4MC8wMDI3MzE3MS4yMDE4LjE0NzYyMjENCg0KDQojIyMjICpOdWxsIGFuZCBBbHRlcm5hdGUgSHlwb3RoZXNlcyBvZiB0aGUgUHJvY2VkdXJlKg0KDQokSF97MH06IFNSTVJfe3BvcH0gXGdlIE1NRVMkDQoNCg0KJEhfezF9OiBTUk1SX3twb3B9IDwgTU1FUyQNCg0KTm90ZSB0aGF0IHRoZSBNTUVTIGlzIHRoZSBtaW5pbWFsbHkgbWVhbmluZ2Z1bCBlZmZlY3Qgc2l6ZSwgYXMgYXBwcm94aW1hdGVkIGJ5IHRoZSBlcXVpdmFsZW5jZSBib3VuZC4NCg0KDQojIyMgKipVc2luZyBgbmVnLnNybXIoKWAqKg0KDQpOb3cgbGV0J3MgdXNlIHRoZSBmdW5jdGlvbi4gQnkgZGVmYXVsdCwgZG9pbmcgc28gcmVxdWlyZXMgYSBmaXR0ZWQgbW9kZWwgb2JqZWN0IGZyb20gbGF2YWFuLg0KDQojIyMjICpSZXF1aXJlZCBhcmd1bWVudHMgKG5vIGRlZmF1bHQpKg0KDQoqbW9kKjogdGhlIGZpdHRlZCBtb2RlbCBvYmplY3QNCg0KKmVpVSo6IHVwcGVyIGJvdW5kIG9mIGVxdWl2YWxlbmNlIGludGVydmFsIGZvciBTUk1SIGZvciBjb21wYXJpc29uOyBub3RlIHRoYXQgdGhpcyB2YWx1ZSBtdXN0IGJlIG9uZSBvZiAuMDUgb3IgLjEwIGlmIG1vZGlmLmVxLmJvdW5kID0gVFJVRQ0KDQoNCiMjIyMgKk9wdGlvbmFsIGFyZ3VtZW50cyAoaGFzIGEgZGVmYXVsdCkqDQoNCiphbHBoYSo6IHRoZSBvcHRpb25hbCBhcmd1bWVudCBmb3IgdGhlIGFscGhhIGxldmVsIChkZWZhdWx0IGlzIC4wNSksIA0KDQoqcm91bmQqOiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgZm9yIHRoZSBudW1iZXIgb2YgZGlnaXRzIHRvIHJvdW5kIGVxdWl2YWxlbmNlIGJvdW5kIGFuZCBjb25maWRlbmNlIGludGVydmFsIGJvdW5kcyAoZGVmYXVsdCBpcyAzKSwNCg0KKm1vZGlmLmVxLmJvdW5kKjogc2hvdWxkIHRoZSB1cHBlciBib3VuZCBvZiB0aGUgZXF1aXZhbGVuY2UgaW50ZXJ2YWwgZm9yIFNSTVIgYmUgbW9kaWZpZWQ/IChkZWZhdWx0IGlzIEZBTFNFKQ0KDQoqY2kubWV0aG9kKjogbWV0aG9kIHVzZWQgdG8gY2FsY3VsYXRlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIFNSTVI7IG9wdGlvbnMgYXJlICJNTyIgb3IgInloeS5ib290IjsgIk1PIiBjb3JyZXNwb25kcyB0byAoMS0yYWxwaGEpIHBlcmNlbnQgQ0ksICJ5aHkuYm9vdCIgY29ycmVzcG9uZHMgdG8gKDEtMmFscGhhKSBwZXJjZW50IGJvb3QgQ0kgKGRlZmF1bHQgaXMgIk1PIiksDQoNCip1c3Jtcio6IGZpdCBpbmRleCBhcm91bmQgd2hpY2ggZXF1aXZhbGVuY2UgdGVzdCBzaG91bGQgYmUgc3RydWN0dXJlZC4gV2hlbiB1c3JtciA9IFRSVUUgdGhlIHVzcm1yIGZyb20gTWF5ZGV1LU9saXZhcmVzLCAyMDE3IHdpbGwgYmUgdXNlZCwgb3RoZXJ3aXNlIHNybXIgZnJvbSBmaXRtZWFzdXJlcygpIG91dHB1dCBpbiBsYXZhYW4gd2lsbCBiZSB1c2VkIChkZWZhdWx0IGlzIFRSVUUpLA0KDQoqbmJvb3QqOiBudW1iZXIgb2YgYm9vdHN0cmFwIHNhbXBsZXMgaWYgInloeS5ib290IiBpcyBzZWxlY3RlZCBhcyBzcm1yLmNpLm1ldGhvZCAoZGVmYXVsdCBpcyAyNTBMKQ0KDQoNCiMjICoqRXhhbXBsZXMqKg0KDQojIyMgKipFeGFtcGxlIDEqKg0KDQpGaXJzdCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG1vZGVsIG9iamVjdCB1c2luZyBsYXZhYW4uIExldCdzIHVzZSB0aGUgSG9semluZ2VyIGFuZCBTd2luZWZvcmQgZGF0YXNldCB0aGF0IGlzIHBhcnQgb2YgdGhlIGxhdmFhbiBwYWNrYWdlLg0KYGBge3J9DQpsaWJyYXJ5KG5lZ2xpZ2libGUpDQpsaWJyYXJ5KGxhdmFhbikNCg0KZCA8LSBsYXZhYW46OkhvbHppbmdlclN3aW5lZm9yZDE5MzkNCmhzLm1vZCA8LSAndmlzdWFsID1+IHgxICsgeDIgKyB4Mw0KdGV4dHVhbCA9fiB4NCArIHg1ICsgeDYNCnNwZWVkID1+IHg3ICsgeDggKyB4OScNCmZpdDEgPC0gbGF2YWFuOjpjZmEoaHMubW9kLCBkYXRhID0gZCkNCmBgYA0KDQpOb3cgd2UgY2FuIHVzZSB0aGUgZnVuY3Rpb24uIExldCdzIHNheSB0aGF0IHdlIGp1c3QgZ28gd2l0aCB0aGUgZGVmYXVsdHMgZmlyc3QuDQoNCmBgYHtyfQ0KbmVnLnNybXIobW9kID0gZml0MSwgZXEuYm91bmQgPSAuMDUpDQpgYGANCg0KIyMjICoqRXhhbXBsZSAyKioNCg0KV2UgY2FuIGFsc28gdXNlIG1vZGlmaWVkIGVxdWl2YWxlbmNlIGJvdW5kcy4gRm9yIGluc3RhbmNlLCBpZiB3ZSB3YW50ZWQgdG8gbW9kaWZ5IGFjY29yZGluZyB0byB0aGUgYWRhcHRlZCBjdXRvZmYgZm9ybXVsYSBwcm92aWRlZCBieSBTaGkgZXQgYWwuIDIwMTgsIHdlIGNhbiBjaGFuZ2UgdGhlIGlucHV0IHRvIHRoZSBtb2RpZi5lcS5ib3VuZCBhcmd1bWVudC4gTm90ZSB0aGF0IHdlIGNhbiBvbmx5IGRvIHRoaXMgYmVjYXVzZSBvdXIgZXF1aXZhbGVuY2UgYm91bmQgZm9yIFNSTVIgaXMgLjA1IChpdCBuZWVkcyB0byBiZSBlaXRoZXIgLjA1IG9yIC4xMCB0byBhcHBseSB0aGlzIGNoYW5nZSkuDQoNCmBgYHtyfQ0KbmVnLnNybXIobW9kID0gZml0MSwgIA0KICAgICAgICAgICBlcS5ib3VuZCA9IC4wNSwgbW9kaWYuZXEuYm91bmQgPSBUUlVFKQ0KYGBgDQoNCg0KIyMgKipFeHRyYWN0YWJsZSBFbGVtZW50cyoqDQoNCkEgbnVtYmVyIG9mIGVsZW1lbnRzIG9mIHRoZSBvdXRwdXQgY2FuIGJlIGV4dHJhY3RlZCwgaW5jbHVkaW5nOg0KDQoqdXNybXIqIFdoZXRoZXIgdGhlIHVuYmlhc2VkIFNSTVIgaXMgdXNlZCBmb3IgdGhlIGVxdWl2YWxlbmNlIHRlc3QNCg0KKnNybXJfaW5kZXgqIFRoZSBTUk1SIGluZGV4IChVU1JNUiBvciBvcmlnaW5hbCBTUk1SIGRlcGVuZGluZyBvbiB3aGV0aGVyIHVzcm1yIGlzIFRSVUUgb3IgRkFMU0UpDQoNCipjaS5tZXRob2QqIFRoZSBjb25maWRlbmNlIGludGVydmFsIG1ldGhvZCBzZWxlY3RlZCBmb3IgY29tcHV0aW5nIHRoZSB1cHBlciBib3VuZCBvZiB0aGUgY29uZmlkZW5jZSBpbnRlcnZhbCBmb3IgdGhlIFNSTVINCg0KKmFscGhhKiBOb21pbmFsIFR5cGUgSSBlcnJvciByYXRlDQoNCipzcm1yX2NpKiBUaGUgdmFsdWUgb2YgdGhlIHVwcGVyIGJvdW5kIG9mIHRoZSBjb25maWRlbmNlIGludGVydmFsIGZvciBTUk1SDQoNCiptb2RpZi5lcS5ib3VuZCogV2hldGhlciBhIG1vZGlmaWVkIGVxdWl2YWxlbmNlIGJvdW5kIHdhcyB1c2VkIGZvciB0aGUgU1JNUiBlcXVpdmFsZW5jZSB0ZXN0DQoNCiplcS5ib3VuZCogVGhlIHZhbHVlIG9mIHRoZSBlcXVpdmFsZW5jZSBib3VuZCB1c2VkIGZvciB0aGUgU1JNUiBlcXVpdmFsZW5jZSB0ZXN0DQoNCipkZWNpc2lvbiogTkhTVCBkZWNpc2lvbiBmb3IgdGhlIFNSTVIgZXF1aXZhbGVuY2UgdGVzdA==