7  Exploratory Graph Analysis

Psychological and educational instruments often contain many items, but the substantive interpretation usually concerns a smaller number of dimensions. A central psychometric question is therefore:

How many dimensions are represented by the observed item responses, and which items belong to each dimension?

Factor-analytic approaches traditionally address this question using factor-retention procedures such as the Kaiser–Guttman criterion, parallel analysis, and related methods. These procedures can work well, but none is universally accurate. The eigenvalue-greater-than-one rule, for example, can both under- and overestimate dimensionality (Zwick & Velicer, 1986), while the performance of parallel analysis can depend on features such as response format and the particular procedure used (Green et al., 2016).

Exploratory Graph Analysis (EGA) was proposed as an alternative network-based approach to dimensionality estimation (H. F. Golino & Epskamp, 2017). Rather than beginning with an eigenvalue-retention rule, EGA estimates a network among the observed variables and then uses community detection to identify groups of strongly connected items.

NoteChapter map

This chapter develops EGA through three main stages:

  1. Unique Variable Analysis (UVA): identify potentially redundant or locally dependent items.
  2. Exploratory Graph Analysis: estimate the item network and identify communities.
  3. Bootstrap EGA: evaluate how consistently the dimensions and item assignments are recovered across resampled datasets.

The final section implements the complete workflow in R using EGAnet.

7.1 What Is Exploratory Graph Analysis?

Network psychometrics represents variables as nodes and statistical relationships among them as edges. In an EGA of questionnaire items, each item becomes a node, and the estimated association between two items is represented by the edge connecting them.

EGA then applies a community-detection algorithm to this network. Groups of items that are more strongly connected with one another than with other parts of the network are identified as communities, which are interpreted as candidate dimensions (H. Golino et al., 2020; H. F. Golino & Epskamp, 2017).

In EFA In EGA
Observed item Node
Factor loading Network loading / item-community association
Latent dimension Detected network community
Factor-retention method Community-detection procedure
Stability of loading structure Bootstrap item and dimension stability

7.1.1 Relationship to factor models

EGA does not require us to assume that psychological variables are literally generated by direct interactions among observed items. If data are generated by a reflective common-factor model, items influenced by the same factor can also form communities in a network (H. F. Golino & Epskamp, 2017). Simulation research has shown that EGA can recover factor dimensionality with accuracy comparable to strong traditional factor-retention procedures across many conditions (H. Golino et al., 2020).

ImportantA network community is not automatically a psychological construct

EGA estimates statistical communities. Giving those communities psychological meaning still requires item content, theory, and validity evidence. Finding five communities does not, by itself, prove that five psychological traits exist.

7.2 The EGA Workflow

A useful way to think about the procedure is:

Stage Main question Typical function
1. UVA Are some items redundant beyond the broader dimensional structure? UVA()
2. EGA How many communities are present, and which items belong to each? EGA()
3. Bootstrap EGA Is this dimensional solution stable across replicated samples? bootEGA()
4. Stability diagnostics Which dimensions and items are recovered consistently? dimensionStability() / itemStability()

8 1. Unique Variable Analysis

8.1 Local Independence and Redundancy

In a reflective latent-variable model, indicators are expected to become independent after conditioning on the relevant latent variable. This property is called local independence.

When two indicators remain strongly related beyond what is expected from the broader structure, they may contain redundant content or additional shared dependence. Such local dependence can distort estimates of internal structure and other psychometric quantities (Christensen et al., 2023).

Unique Variable Analysis (UVA) was developed to detect these potentially redundant pairs using network psychometric methods (Christensen et al., 2023). One of its central quantities is weighted topological overlap (wTO), which considers both the direct relation between two nodes and the similarity of their connections with the rest of the network (Nowick et al., 2009).

A commonly presented weighted topological overlap measure is

\[ \omega_{ij} = \frac{ \sum_{u} a_{iu}a_{uj}+a_{ij} }{ \min(k_i,k_j)+1-a_{ij} }, \]

where:

  • \(a_{ij}\) is the edge weight between nodes \(i\) and \(j\);
  • \(u\) indexes connections shared by nodes \(i\) and \(j\); and
  • \(k_i\) and \(k_j\) summarize the strength of the connections of the two nodes.

Higher values indicate that two variables occupy very similar positions in the network and may contain overlapping information.

In the UVA framework proposed by Christensen et al. (2023), cutoff-based procedures performed better overall than significance-based approaches. A value around .25 is commonly used as a practical indication of potentially important redundancy.

WarningRedundancy is a diagnostic, not an automatic deletion rule

Two items can be statistically redundant while still serving different substantive purposes. Before removing an item, inspect its wording, construct coverage, response format, and role in the measure.

8.1.1 How UVA reduces redundant sets

When automatic reduction is requested, UVA must decide which variable to retain from a redundant set. The logic differs according to the number of variables involved:

Redundant set General logic
Duplet Retain the variable that is less redundant with the remainder of the item set
Triplet or larger set Retain the variable that best represents the redundant group and remove the others

The objective is not simply to remove correlated items. It is to reduce local redundancy before estimating dimensionality.

9 2. Exploratory Graph Analysis

EGA combines two operations:

  1. estimate a network describing conditional relationships among the variables; and
  2. apply a community-detection algorithm to identify clusters of nodes.

The original EGA implementation used an EBIC graphical lasso network followed by Walktrap community detection (H. F. Golino & Epskamp, 2017).

9.1 Partial Correlations

A zero-order correlation between two variables contains both their direct association and associations that may be explained through other variables. In contrast, a partial correlation describes the association between two variables after statistically controlling for the remaining variables in the model.

For a covariance matrix

\[ \Sigma, \]

define the precision matrix

\[ K = \Sigma^{-1}. \]

The partial correlation between variables \(i\) and \(j\), controlling for all remaining variables, is

\[ \rho_{ij\cdot -ij} = -\frac{k_{ij}} {\sqrt{k_{ii}k_{jj}}}. \]

Thus, the inverse covariance matrix provides the information needed to construct the full-order partial-correlation network (H. Golino et al., 2020).

NoteWhy partial correlations are useful here

If two items are correlated only because both are related to several other items, their partial correlation may be small. This helps the network emphasize more specific conditional relationships.

9.2 EBICglasso

Estimating every possible partial correlation can produce a dense network containing many weak or unstable edges. The graphical lasso addresses this by applying an \(L_1\) penalty to elements of the precision matrix, shrinking some estimates exactly to zero (Friedman et al., 2008).

The tuning parameter

\[ \lambda \]

controls the degree of regularization:

\(\lambda\) Consequence
Smaller More edges remain; the network is denser
Larger More estimates are shrunk to zero; the network is sparser

The EGA approach historically fits networks across candidate values of \(\lambda\) and selects a model using the Extended Bayesian Information Criterion (EBIC). EBIC extends BIC by adding a penalty that is useful when the candidate model space is large (Chen & Chen, 2008).

A second tuning quantity,

\[ \gamma, \]

controls how strongly EBIC favors sparse models. Larger values of \(\gamma\) produce a stronger preference for simpler networks; when \(\gamma=0\), the additional EBIC penalty disappears and the criterion reduces to the ordinary BIC form (Chen & Chen, 2008).

TipTwo different tuning parameters

Do not confuse \(\lambda\) and \(\gamma\).

  • \(\lambda\) controls the amount of shrinkage used to estimate a particular graphical-lasso network.
  • \(\gamma\) changes the EBIC penalty used when selecting among candidate networks.

9.3 Community Detection: Walktrap

After estimating the network, EGA uses a community-detection algorithm to partition the nodes.

The original EGA implementation used Walktrap, an algorithm based on short random walks (Pons & Latapy, 2006). The intuition is that a short random walk tends to remain within a densely connected community because there are many strong paths among nodes belonging to the same cluster.

A simplified view of the process is:

  1. construct transition probabilities from the weighted network;
  2. perform short random walks;
  3. use similarities in the random-walk behavior to progressively combine nodes and communities; and
  4. select a partition using the community structure of the graph (Newman, 2006; Pons & Latapy, 2006).

Each resulting community is interpreted as a candidate psychometric dimension.

NoteEGA has evolved beyond one network and one community algorithm

Modern versions of EGAnet provide several network estimators and community-detection algorithms. In the R tutorial below, we explicitly request model = "glasso" and algorithm = "walktrap" so that the code matches the EBICglasso + Walktrap approach explained in this chapter (H. Golino & Christensen, 2026).

10 3. Stability of the EGA Solution

A single estimated structure may reflect sampling variation. Bootstrap EGA therefore repeatedly estimates EGA solutions from replicated datasets and examines how consistently the dimensional structure is recovered (Christensen & Golino, 2021).

bootEGA() can use either a parametric procedure based on the empirical association structure or nonparametric resampling of the observed cases. Across replications, the procedure records:

  • the number of dimensions detected;
  • community membership of each item;
  • the estimated networks; and
  • stability information about dimensions and items.

The bootstrap can also be used to obtain a typical network structure based on median pairwise relationships across bootstrap samples (Christensen & Golino, 2021).

10.1 Structural Consistency

Structural consistency describes how often an empirically identified dimension is reproduced with the same item composition across bootstrap samples.

If a dimension has low structural consistency, the exact composition of that dimension is changing substantially across replications.

10.2 Item Stability

Item stability describes how often an individual item returns to the same empirical dimension across bootstrap replications.

An item with low stability may:

  • move between neighboring dimensions;
  • occupy a boundary between communities;
  • contain content associated with multiple constructs; or
  • reflect an unstable dimensional solution.

Values around .70 to .75 have commonly been used as practical reference points in EGA applications (Christensen & Golino, 2021), but these values should be treated as descriptive guidance rather than universal psychometric laws.

ImportantDimension stability and item stability answer different questions

A solution can repeatedly produce the same number of dimensions while individual items move between them. For this reason, stability should not be evaluated only from the bootstrap distribution of the number of communities.

11 Running EGA Step by Step in R

The tutorial uses EGAnet (H. Golino & Christensen, 2026), the bfi personality data and item dictionary available through the psych/psychTools ecosystem (Revelle, 2023), and lavaan for an optional CFA follow-up (Rosseel, 2012).

11.1 Install the Packages

Installation only needs to be performed once.

install.packages("EGAnet")
install.packages("psych")
install.packages("psychTools")
install.packages("lavaan")

Load the packages:

library(EGAnet)
[1;m[4;m
EGAnet (version 2.4.1)[0m[0m 

For help getting started, see <https://r-ega.net> 

For bugs and errors, submit an issue to <https://github.com/hfgolino/EGAnet/issues>
library(psych)

Anexando pacote: 'psych'
O seguinte objeto é mascarado por 'package:EGAnet':

    CFA
library(psychTools)
library(lavaan)
This is lavaan 0.7-2
lavaan is FREE software! Please report any bugs.

Anexando pacote: 'lavaan'
O seguinte objeto é mascarado por 'package:psych':

    cor2cov

11.2 Prepare the BFI Items

The example uses the first 25 variables from the bfi dataset, which represent personality items from the Big Five item set.

bfi_items <- psych::bfi[, 1:25]

dim(bfi_items)
[1] 2800   25

For readability in UVA output, we will also use the corresponding item descriptions from the psychTools dictionary.

bfi_key <- as.character(
  psychTools::bfi.dictionary$Item[1:25]
)

11.3 Step 1: Run Unique Variable Analysis

bfi_uva <- EGAnet::UVA(
  data = bfi_items,
  key = bfi_key
)

bfi_uva
Variable pairs with wTO > 0.30 (large-to-very large redundancy)

            node_i                node_j   wto
 Get angry easily. Get irritated easily. 0.431

----

Variable pairs with wTO > 0.25 (moderate-to-large redundancy)

----

Variable pairs with wTO > 0.20 (small-to-moderate redundancy)

                                    node_i
                         Don't talk a lot.
                   Am exacting in my work.
 Am indifferent to the feelings of others.
           Do things in a half-way manner.
               Know how to comfort others.
                         Get angry easily.
                Have frequent mood swings.
         Inquire about others' well-being.
                                node_j   wto
 Find it difficult to approach others. 0.226
 Continue until everything is perfect. 0.225
     Inquire about others' well-being. 0.219
                        Waste my time. 0.209
             Make people feel at ease. 0.207
            Have frequent mood swings. 0.205
                      Often feel blue. 0.204
           Know how to comfort others. 0.203

The output identifies pairs or sets of items with potentially important topological overlap and reports the reduction suggested by UVA.

The retained and removed variables can be inspected with:

bfi_uva$keep_remove
$keep
[1] "Get irritated easily."

$remove
[1] "Get angry easily."

In this example, the interpretation should focus on the content of the flagged items as well as the wTO value. Similar wording such as “getting angry easily” and “getting irritated easily” provides a substantive reason why two variables might behave redundantly.

The reduced dataset is available directly from the UVA object:

bfi_reduced <- bfi_uva$reduced_data
WarningFor real scale development

Do not let UVA() silently decide the final questionnaire. Treat the automatic reduction as a statistical recommendation and document the substantive reason for retaining or removing each flagged item.

11.4 Step 2: Estimate the EGA Structure

To match the method explained earlier in the chapter, we explicitly request a graphical-lasso network and Walktrap community detection.

bfi_ega <- EGAnet::EGA(
  data = bfi_reduced,
  model = "glasso",
  algorithm = "walktrap"
)

bfi_ega
Model: GLASSO (EBIC with gamma = 0.5)
Correlations: auto
Lambda: 0.0597096451199323 (n = 100, ratio = 0.1)

Number of nodes: 24
Number of edges: 125
Edge density: 0.453

Non-zero edge weights: 
     M    SD    Min   Max
 0.041 0.112 -0.270 0.396

----

Algorithm:  Walktrap

Number of communities:  5

A1 A2 A3 A4 A5 C1 C2 C3 C4 C5 E1 E2 E3 E4 E5 N2 N3 N4 N5 O1 O2 O3 O4 O5 
 1  1  1  1  1  2  2  2  2  2  3  3  3  3  3  4  4  4  4  5  5  5  5  5 

----

Unidimensional Method: Louvain
Unidimensional: No

----

TEFI: -24.989

The EGA plot uses color to distinguish detected communities. Each node is an item, and each community represents a candidate dimension.

A text summary is available with:

summary(bfi_ega)
Model: GLASSO (EBIC with gamma = 0.5)
Correlations: auto
Lambda: 0.0597096451199323 (n = 100, ratio = 0.1)

Number of nodes: 24
Number of edges: 125
Edge density: 0.453

Non-zero edge weights: 
     M    SD    Min   Max
 0.041 0.112 -0.270 0.396

----

Algorithm:  Walktrap

Number of communities:  5

A1 A2 A3 A4 A5 C1 C2 C3 C4 C5 E1 E2 E3 E4 E5 N2 N3 N4 N5 O1 O2 O3 O4 O5 
 1  1  1  1  1  2  2  2  2  2  3  3  3  3  3  4  4  4  4  5  5  5  5  5 

----

Unidimensional Method: Louvain
Unidimensional: No

----

TEFI: -24.989

The summary provides several layers of information:

Output Interpretation
Network model How the item network was estimated
Network characteristics Number of nodes, edges, edge density, and edge summaries
Community algorithm How communities were identified
Number of communities Estimated dimensionality
Item membership Which community each item belongs to
Unidimensionality information Whether a one-dimensional solution should be considered
TEFI, when available Entropy-based information that can help compare dimensional structures

The Total Entropy Fit Index (TEFI) was proposed as an information- theoretic approach for comparing dimensional structures (H. Golino et al., 2021). Like other model-comparison quantities, it should be interpreted comparatively rather than as an isolated pass/fail number.

ImportantWhat does ‘five communities’ mean?

If EGA detects five communities in the BFI data, the result is statistically consistent with the familiar five-dimensional organization of Big Five personality items. The EGA result does not prove the Big Five theory; it shows that the observed network contains a five-community structure that can be interpreted in relation to that theory.

11.5 Step 3: Bootstrap the EGA

Bootstrap EGA is the most computationally intensive part of this chapter. The example uses 500 bootstrap replications, matching a common choice in the EGA literature (Christensen & Golino, 2021).

Show bootstrap EGA code
bfi_boot <- EGAnet::bootEGA(
  data = bfi_reduced,
  model = "glasso",
  algorithm = "walktrap",
  iter = 500,
  seed = 2024
)

The cache option is intentional: once the bootstrap has been computed, Quarto can reuse the stored result rather than recomputing 500 EGA solutions every time the chapter is rendered.

Inspect the bootstrap summary with:

summary(bfi_boot)
Model: GLASSO (EBIC)
Correlations: auto
Algorithm:  Walktrap
Unidimensional Method:  Louvain

----

EGA Type: EGA 
Bootstrap Samples: 500 (Parametric)
                       
                4     5
Frequency:  0.058 0.942

Median dimensions: 5 [4.54, 5.46] 95% CI

Important results include:

  • how often each number of communities was recovered;
  • the median number of communities;
  • uncertainty in the number of dimensions; and
  • information about the estimation procedure used across replications.

A bootstrap distribution concentrated around the empirical number of dimensions is reassuring, but it is not sufficient by itself. We should also inspect the stability of the dimensions and the items.

11.6 Dimension and Item Stability

dimensionStability(bfi_boot)

EGA Type: EGA 
Bootstrap Samples: 500 (Parametric)

Proportion Replicated in Dimensions:

   A1    A2    A3    A4    A5    C1    C2    C3    C4    C5    E1    E2    E3 
1.000 1.000 1.000 0.994 1.000 1.000 1.000 1.000 1.000 1.000 0.994 0.994 0.992 
   E4    E5    N2    N3    N4    N5    O1    O2    O3    O4    O5 
0.992 0.958 1.000 1.000 1.000 1.000 0.948 0.948 0.948 0.948 0.948 

----

Structural Consistency:

    1     2     3     4     5 
0.994 1.000 0.966 1.000 0.948 

The resulting diagnostics show how consistently the empirical dimensions and their items are recovered across bootstrap samples.

Interpret stability at two levels:

  1. Dimension-level stability: Is the same set of items repeatedly recovered as a dimension?
  2. Item-level stability: Does each item repeatedly return to its original empirical dimension?

An item that repeatedly switches between dimensions deserves particular attention, even if the total number of dimensions remains stable.

TipHow to interpret an unstable item

Low item stability is not automatically a reason for deletion. It may indicate ambiguous wording, construct overlap, a boundary item, local dependence, or a genuinely complex psychological structure.

11.7 Network Loadings

Network loadings provide information analogous in purpose—not identical in mathematics—to factor loadings. They quantify how strongly variables are connected with their own and other network dimensions (Christensen et al., 2020).

network_loadings <- EGAnet::net.loads(
  bfi_boot$EGA
)
The default 'loading.method' has changed to "revised" in {EGAnet} version >= 2.0.7.

 For the previous default (version <= 2.0.6), use `loading.method = "original"`
print(
  network_loadings,
  minimum = 0
)
Loading Method: Revised

   1      2      3      4      5     
A2  0.585   0.04  0.078  0.017  0.026
A3  0.579      0  0.124      0  0.013
A5   0.33      0  0.239 -0.038  0.015
A4  0.248   0.12  0.062 -0.007 -0.015
A1 -0.253 -0.009  0.014   0.03 -0.035
C2  0.057  0.465  0.021  0.039  0.037
C1      0  0.395  0.041      0  0.075
C3  0.042  0.379  0.013      0      0
C5 -0.061 -0.378 -0.051  0.118  0.035
C4 -0.019 -0.519 -0.024  0.068   -0.1
E4  0.228      0  0.441 -0.041 -0.061
E3  0.173      0   0.29  0.008    0.2
E5  0.049  0.147  0.289  0.025  0.117
E1 -0.014  0.033 -0.421  0.006 -0.029
E2 -0.025  -0.03 -0.559  0.104  0.055
N3      0 -0.017  0.008  0.671  0.028
N2 -0.078 -0.043  0.055  0.437  -0.01
N4      0 -0.098 -0.135  0.412  0.071
N5  0.018  0.011 -0.052  0.349   -0.1
O3  0.027  0.039  0.191      0  0.485
O1 -0.004  0.028  0.161 -0.012  0.376
O4  0.039 -0.004 -0.072  0.091  0.274
O2   0.01 -0.054   0.03   0.07 -0.322
O5  -0.02 -0.046  0.029   0.02 -0.456
Standardized loadings >= |0.00| are displayed. To change this 'minimum', use `print(net.loads_object, minimum = 0.10)`

When interpreting network loadings, examine:

  • which dimension has the largest loading for each item;
  • whether an item has meaningful loadings on multiple dimensions; and
  • whether the loading pattern agrees with the detected community membership.

As with factor loadings, item content should guide the substantive interpretation.

11.8 Optional Follow-Up: CFA of the EGA Structure

EGA is exploratory. If the detected structure is theoretically meaningful, one possible follow-up is to translate that structure into a confirmatory factor model.

EGAnet provides a convenience function for this purpose:

ega_cfa <- EGAnet::CFA(
  bfi_ega,
  data = bfi_reduced,
  estimator = "WLSMV",
  plot.CFA = TRUE,
  layout = "spring"
)
[1] "A1" "A2" "A3" "A4" "A5"
[1] "C1" "C2" "C3" "C4" "C5"
[1] "E1" "E2" "E3" "E4" "E5"
[1] "N2" "N3" "N4" "N5"
[1] "O1" "O2" "O3" "O4" "O5"

Fit measures can then be extracted from the underlying lavaan model:

lavaan::fitMeasures(
  ega_cfa$fit,
  fit.measures = "all"
)
                         npar                          fmin 
                       82.000                         0.738 
                        chisq                            df 
                     4132.221                       242.000 
                       pvalue                  chisq.scaled 
                        0.000                      3570.714 
                    df.scaled                 pvalue.scaled 
                      242.000                         0.000 
         chisq.scaling.factor                baseline.chisq 
                        1.157                     17655.215 
                  baseline.df               baseline.pvalue 
                      276.000                         0.000 
        baseline.chisq.scaled            baseline.df.scaled 
                    14781.836                       276.000 
       baseline.pvalue.scaled baseline.chisq.scaling.factor 
                        0.000                         1.194 
                          cfi                           tli 
                        0.776                         0.745 
                   cfi.scaled                    tli.scaled 
                        0.771                         0.738 
                   cfi.robust                    tli.robust 
                        0.777                         0.746 
                         nnfi                           rfi 
                        0.745                         0.733 
                          nfi                          pnfi 
                        0.766                         0.672 
                          ifi                           rni 
                        0.777                         0.776 
                  nnfi.scaled                    rfi.scaled 
                        0.738                         0.725 
                   nfi.scaled                   pnfi.scaled 
                        0.758                         0.665 
                   ifi.scaled                    rni.scaled 
                        0.771                         0.771 
                  nnfi.robust                    rni.robust 
                        0.746                         0.777 
                         logl             unrestricted.logl 
                  -109988.969                   -107922.858 
                          aic                           bic 
                   220141.938                    220628.802 
                       ntotal                          bic2 
                     2800.000                    220368.260 
            scaling.factor.h1             scaling.factor.h0 
                        1.155                         1.147 
                        rmsea                rmsea.ci.lower 
                        0.076                         0.074 
               rmsea.ci.upper                rmsea.ci.level 
                        0.078                         0.900 
                 rmsea.pvalue                rmsea.close.h0 
                        0.000                         0.050 
        rmsea.notclose.pvalue             rmsea.notclose.h0 
                        0.000                         0.080 
                 rmsea.scaled         rmsea.ci.lower.scaled 
                        0.070                         0.068 
        rmsea.ci.upper.scaled           rmsea.pvalue.scaled 
                        0.072                         0.000 
 rmsea.notclose.pvalue.scaled                  rmsea.robust 
                        0.000                         0.076 
        rmsea.ci.lower.robust         rmsea.ci.upper.robust 
                        0.074                         0.078 
          rmsea.pvalue.robust  rmsea.notclose.pvalue.robust 
                        0.000                         0.001 
                          rmr                    rmr_nomean 
                        0.144                         0.150 
                         srmr                  srmr_bentler 
                        0.070                         0.070 
          srmr_bentler_nomean                          crmr 
                        0.073                         0.073 
                  crmr_nomean                    srmr_mplus 
                        0.076                         0.070 
            srmr_mplus_nomean                           gfi 
                        0.073                         0.896 
                 gfi.ci.lower                  gfi.ci.upper 
                        0.891                         0.901 
                 gfi.ci.level                    gfi.robust 
                        0.900                         0.896 
          gfi.ci.lower.robust           gfi.ci.upper.robust 
                        0.891                         0.901 
                        cn_05                         cn_01 
                      190.246                       201.638 
                   gfi_lisrel                   agfi_lisrel 
                        0.992                         0.990 
                         pgfi                           mfi 
                        0.741                         0.499 
                         ecvi 
                        1.534 
attr(,"scaled.test")
[1] "yuan.bentler.mplus"
WarningDo not call this independent confirmation

If the same dataset is used to discover the EGA structure and then fit a CFA, the CFA is not an independent confirmation of that structure. A stronger design estimates the exploratory structure in one sample and evaluates it in another sample or an external dataset.

12 A Compact EGA Interpretation Guide

Result Ask…
UVA Are any items locally redundant, and does their content explain why?
EGA communities How many dimensions are identified, and do the grouped items make substantive sense?
Edges Which conditional item relationships remain after network estimation?
Network loadings Which community is each item most strongly associated with?
Bootstrap dimensionality Is the same number of communities recovered consistently?
Structural consistency Is each empirical dimension recovered with the same composition?
Item stability Do individual items remain in the same community?
TEFI / model comparison Does one candidate dimensional structure receive better comparative support?
CFA follow-up Does a theoretically specified version of the exploratory solution reproduce the data reasonably well?

13 How to Report an EGA

A transparent report should describe enough of the procedure for another researcher to reproduce the dimensionality decision. At minimum, report:

  • the variables included in the analysis;
  • whether and how UVA was used;
  • the network estimation method;
  • the community-detection algorithm;
  • the estimated number of communities;
  • the item membership of each community;
  • the bootstrap type and number of replications;
  • the distribution of recovered dimensionality;
  • dimension and item stability;
  • any network-loading or entropy-fit information used in interpretation; and
  • any item reductions or modifications made after inspecting the results.

For the BFI tutorial, the analytic description could follow this form:

Exploratory Graph Analysis was conducted on the 25 BFI personality items. Unique Variable Analysis was first used to identify potentially redundant variables. EGA was then estimated using a graphical-lasso network and Walktrap community detection. The stability of the dimensional structure was evaluated using 500 bootstrap replications. The number and composition of the detected communities, structural consistency, item stability, and network loadings were considered jointly when interpreting the solution.

Insert the actual numerical results from the fitted models when reporting an empirical analysis.

14 Concluding Remarks

EGA provides a complementary approach to dimensionality estimation. Its main advantage is that it returns both an estimate of the number of dimensions and an explicit representation of which items belong to those dimensions. UVA and bootstrap EGA extend this workflow by making local redundancy and structural stability part of the analysis rather than afterthoughts.

At the same time, EGA does not remove the need for psychometric theory. The community-detection algorithm identifies statistical structure; the researcher still has to decide whether the communities form coherent constructs, whether item redundancy is substantively problematic, and whether the solution is stable enough to support further interpretation.

The most useful reading of EGA is therefore not simply “the algorithm found five dimensions.” A stronger conclusion asks whether the number of dimensions, item memberships, network loadings, bootstrap stability, and theoretical interpretation all converge on the same measurement structure.