Nothing
# Single-group SRMR by the Mplus definition (Asparouhov & Muthen 2018), checked
# against Mplus 9 on psych::bfi (validation/_validate_ewc_mplus.R): ESEM 0.026
# and B-ESEM 0.018 under MLR (listwise, N = 2436); ESEM 0.026 under WLSMV.
# Mplus always models the means, so the continuous denominator is
# p(p+1)/2 + p even when lavaan fits no mean structure.
skip_on_cran()
quiet <- function(expr) suppressWarnings(suppressMessages(expr))
fl <- list(Agree = paste0("A", 1:5), Consc = paste0("C", 1:5), Extra = paste0("E", 1:5),
Neuro = paste0("N", 1:5), Open = paste0("O", 1:5))
items <- unname(unlist(fl))
bfi <- psych::bfi[, items]
bfi_c <- bfi[stats::complete.cases(bfi), ]
test_that("continuous ESEM and B-ESEM SRMR match Mplus at 3 dp", {
spec <- do.call(specify_model, c(fl, list(data = bfi_c, ordered = FALSE, label = "bfi")))
res <- quiet(run_comparison(spec, run_alignment = FALSE))
expect_identical(fit_indices(res$fit_esem)[["SRMR"]], "0.026")
expect_identical(fit_indices(res$fit_besem)[["SRMR"]], "0.018")
})
test_that("ordered ESEM (lavaan WLSMV path) SRMR matches Mplus at 3 dp", {
spec <- do.call(specify_model, c(fl, list(data = bfi, ordered = TRUE, label = "bfi ord")))
fit <- quiet(esem_ordered(data = bfi, nfactors = 5L, indicators = items, rotation = "target",
target = spec$target, factor_names = spec$factor_names,
missing = "pairwise"))
expect_identical(fit_indices(fit)[["SRMR"]], "0.026")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.