Skip to contents

Based on the bootEGA results, this function computes and plots the number of times an variable is estimated in the same dimension as originally estimated by an empirical EGA structure or a theoretical/input structure. The output also contains each variable's replication frequency (i.e., proportion of bootstraps that a variable appeared in each dimension


itemStability(bootega.obj, IS.plot = TRUE, structure = NULL, ...)



A bootEGA object


Boolean (length = 1). Should the plot be produced for item.replication? Defaults to TRUE


Numeric (length = number of variables). A theoretical or pre-defined structure. Defaults to NULL or the empirical EGA result in the bootega.obj


Deprecated arguments from previous versions of itemStability


Returns a list containing:


A list containing:

  • empirical --- A vector of the empirical memberships from the empirical EGA result

  • bootstrap --- A matrix of the homogenized memberships from the replicate samples in the bootEGA results

  • structure --- A vector of the structure used in the analysis. If structure = NULL, then this output will be the same as empirical


A list containing:

  • empirical.dimensions --- A vector of the proportion of times each item replicated within the structure defined by structure

  • all.dimensions --- A matrix of the proportion of times each item replicated in each of the structure defined dimensions


Plot output if IS.plot = TRUE


Original implementation of bootEGA
Christensen, A. P., & Golino, H. (2021). Estimating the stability of the number of factors via Bootstrap Exploratory Graph Analysis: A tutorial. Psych, 3(3), 479-500.

Conceptual introduction
Christensen, A. P., Golino, H., & Silvia, P. J. (2020). A psychometric network perspective on the validity and validation of personality trait questionnaires. European Journal of Personality, 34(6), 1095-1108.

See also

plot.EGAnet for plot usage in EGAnet


Hudson Golino <hfg9s at> and Alexander P. Christensen <>


# Load data
wmt <- wmt2[,7:24]

if (FALSE) {
# Standard EGA example
boot.wmt <- bootEGA(
  data = wmt, iter = 500,
  type = "parametric", ncores = 2

# Standard item stability <- itemStability(boot.wmt)

if (FALSE) {
# EGA fit example <- bootEGA(
  data = wmt, iter = 500,
  EGA.type = "",
  type = "parametric", ncores = 2

# EGA fit item stability <- itemStability(

# Hierarchical EGA example
boot.wmt.hier <- bootEGA(
  data = wmt, iter = 500,
  EGA.type = "hierEGA",
  type = "parametric", ncores = 2

# Hierarchical EGA item stability <- itemStability(boot.wmt.hier)

# Random-intercept EGA example
boot.wmt.ri <- bootEGA(
  data = wmt, iter = 500,
  EGA.type = "riEGA",
  type = "parametric", ncores = 2

# Random-intercept EGA item stability <- itemStability(boot.wmt.ri)}