compute_indices: Compute Reliability Indices for CFA, ESEM, and B-ESEM

View source: R/reliability.R

compute_indicesR Documentation

Compute Reliability Indices for CFA, ESEM, and B-ESEM

Description

Computes McDonald's omega reliability indices for all three models in a pipeline result, following the bifactor reporting framework recommended by Morin, Arens & Marsh (2016) and Rodriguez, Reise & Haviland (2016).

Usage

compute_indices(results)

Arguments

results

An esem_comparison_pipeline object from run_comparison.

Details

For the total composite (all items):

  • omega_total – total reliability (rotation-invariant for orthogonal models).

  • omega_H – hierarchical omega: G factor's contribution to total-score reliability (B-ESEM only).

  • ECV – explained common variance: G's share of all common variance (B-ESEM only).

  • H(G) – construct replicability of G (B-ESEM only).

For each subscale (items of specific factor F_s):

  • omega_S – specific factor's contribution to subscale reliability: (\sum_{i \in s} |\lambda_{s,i}|)^2 / [(\sum_{i \in s} |\lambda_{G,i}|)^2 + (\sum_{i \in s} |\lambda_{s,i}|)^2 + \sum_{i \in s} \psi_i]. G is not partialled out; its variance is treated as an additional source of error (Morin, 2023; Morin et al., 2020). omega_H(G|s) is the mirror image with the specific factor treated as error.

  • omega_sub – total reliability of the subscale sum score (G + specific factor combined).

  • omega_H_sub – G's contribution to subscale reliability.

  • ECV_s – G's share of common variance within the subscale.

  • H(Fs) – construct replicability of the specific factor.

Every composite sum uses absolute standardized loadings, the convention of Morin, Arens and Marsh (2016): each item is scored in the direction of its loading, so reverse-worded items and the orientation of a factor do not change any index. Residual variances are taken from the model-implied item variances (for correlated factors, one minus the diagonal of \Lambda \Phi \Lambda').

Value

An object of class "reliability_indices" – a named list with elements cfa, esem, besem, each containing the computed indices for that model, plus alpha (Cronbach's alpha per subscale and for G). Pass to print() for a formatted table.

References

McDonald, R. P. (1999). Test theory: A unified treatment. Erlbaum.

Rodriguez, A., Reise, S. P., & Haviland, M. G. (2016). Evaluating bifactor models: Calculating and interpreting statistical indices. Psychological Methods, 21(2), 137-150.

Morin, A. J. S., Arens, A. K., & Marsh, H. W. (2016). A bifactor exploratory structural equation modeling framework for the identification of distinct sources of construct-relevant psychometric multidimensionality. Structural Equation Modeling, 23(1), 116-139.

Morin, A. J. S., Myers, N. D., & Lee, S. (2020). Modern factor analytic techniques: Bifactor models, exploratory structural equation modeling (ESEM) and bifactor-ESEM. In G. Tenenbaum & R. C. Eklund (Eds.), Handbook of Sport Psychology (4th ed., pp. 1044-1073). Wiley.

Morin, A. J. S. (2023). Exploratory structural equation modeling. In R. H. Hoyle (Ed.), Handbook of Structural Equation Modeling (2nd ed., pp. 503-524). Guilford.

Examples

data("HolzingerSwineford1939", package = "lavaan")

spec <- specify_model(
  Visual  = c("x1", "x2", "x3"),
  Textual = c("x4", "x5", "x6"),
  Speed   = c("x7", "x8", "x9"),
  data    = HolzingerSwineford1939,
  label   = "Holzinger-Swineford"
)


results <- run_comparison(spec, n_starts = 5L)
indices <- compute_indices(results)
print(indices)



bifactory documentation built on Oct. 28, 2026, 1:06 a.m.