Estimates the number of substantive dimensions after controlling for wording effects. EGA is applied to a residual correlation matrix after subtracting and random intercept factor with equal unstandardized loadings from all the regular and unrecoded reversed items in the database
Arguments
- data
Matrix or data frame. Should consist only of variables to be used in the analysis. Must be raw data and not a correlation matrix
- n
Numeric (length = 1). Sample size if
data
provided is a correlation matrix- corr
Character (length = 1). Method to compute correlations. Defaults to
"auto"
. Available options:"auto"
— Automatically computes appropriate correlations for the data using Pearson's for continuous, polychoric for ordinal, tetrachoric for binary, and polyserial/biserial for ordinal/binary with continuous. To change the number of categories that are considered ordinal, useordinal.categories
(seepolychoric.matrix
for more details)"cor_auto"
— Usescor_auto
to compute correlations. Arguments can be passed along to the function"cosine"
— Usescosine
to compute cosine similarity"pearson"
— Pearson's correlation is computed for all variables regardless of categories"spearman"
— Spearman's rank-order correlation is computed for all variables regardless of categories
For other similarity measures, compute them first and input them into
data
with the sample size (n
)- na.data
Character (length = 1). How should missing data be handled? Defaults to
"pairwise"
. Available options:"pairwise"
— Computes correlation for all available cases between two variables"listwise"
— Computes correlation for all complete cases in the dataset
- model
Character (length = 1). Defaults to
"glasso"
. Available options:"BGGM"
— Computes the Bayesian Gaussian Graphical Model. Set argumentordinal.categories
to determine levels allowed for a variable to be considered ordinal. See?BGGM::estimate
for more details"glasso"
— Computes the GLASSO with EBIC model selection. SeeEBICglasso.qgraph
for more details"TMFG"
— Computes the TMFG method. SeeTMFG
for more details
- algorithm
Character or
igraph
cluster_*
function (length = 1). Defaults to"walktrap"
. Three options are listed below but all are available (seecommunity.detection
for other options):"leiden"
— Seecluster_leiden
for more details"louvain"
— By default,"louvain"
will implement the Louvain algorithm using the consensus clustering method (seecommunity.consensus
for more information). This function will implementconsensus.method = "most_common"
andconsensus.iter = 1000
unless specified otherwise"walktrap"
— Seecluster_walktrap
for more details
- uni.method
Character (length = 1). What unidimensionality method should be used? Defaults to
"louvain"
. Available options:"expand"
— Expands the correlation matrix with four variables correlated 0.50. If number of dimension returns 2 or less in check, then the data are unidimensional; otherwise, regular EGA with no matrix expansion is used. This method was used in the Golino et al.'s (2020) Psychological Methods simulation"LE"
— Applies the Leading Eigenvector algorithm (cluster_leading_eigen
) on the empirical correlation matrix. If the number of dimensions is 1, then the Leading Eigenvector solution is used; otherwise, regular EGA is used. This method was used in the Christensen et al.'s (2023) Behavior Research Methods simulation"louvain"
— Applies the Louvain algorithm (cluster_louvain
) on the empirical correlation matrix. If the number of dimensions is 1, then the Louvain solution is used; otherwise, regular EGA is used. This method was validated Christensen's (2022) PsyArXiv simulation. Consensus clustering can be used by specifying either"consensus.method"
or"consensus.iter"
- plot.EGA
Boolean (length = 1). If
TRUE
, returns a plot of the network and its estimated dimensions. Defaults toTRUE
- verbose
Boolean (length = 1). Whether messages and (insignificant) warnings should be output. Defaults to
FALSE
(silent calls). Set toTRUE
to see all messages and warnings for every function call- ...
Additional arguments to be passed on to
auto.correlate
,network.estimation
,community.detection
,community.consensus
, andEGA
Value
Returns a list containing:
- EGA
Results from
EGA
- RI
A list containing information about the random-intercept model (if the model converged):
- TEFI
link[EGAnet]{tefi}
for the estimated structure- plot.EGA
Plot output if
plot.EGA = TRUE
References
Selection of CFA Estimator
Rhemtulla, M., Brosseau-Liard, P. E., & Savalei, V. (2012).
When can categorical variables be treated as continuous? A comparison of robust continuous and categorical SEM estimation methods under suboptimal conditions.
Psychological Methods, 17, 354-373.
See also
plot.EGAnet
for plot usage in EGAnet
Author
Alejandro Garcia-Pardina <alejandrogp97@gmail.com>, Francisco J. Abad <fjose.abad@uam.es>, Alexander P. Christensen <alexpaulchristensen@gmail.com>, Hudson Golino <hfg9s at virginia.edu>, Luis Eduardo Garrido <luisgarrido@pucmm.edu.do>, and Robert Moulder <rgm4fd@virginia.edu>
Examples
# Obtain example data
wmt <- wmt2[,7:24]
# riEGA example
riEGA(data = wmt, plot.EGA = FALSE)
#> Warning: Some variables did not belong to a dimension: wmt16
#>
#> Use caution: These variables have been removed from the TEFI calculation
#> The random-intercept model converged. Wording effects likely. Results are only valid if data are unrecoded.
#> Model: GLASSO (EBIC with gamma = 0)
#> Correlations: auto
#> Lambda: 0.0529902216958668 (n = 100, ratio = 0.1)
#>
#> Number of nodes: 18
#> Number of edges: 62
#> Edge density: 0.405
#>
#> Non-zero edge weights:
#> M SD Min Max
#> -0.015 0.057 -0.163 0.171
#>
#> ----
#>
#> Algorithm: Walktrap
#>
#> Number of communities: 4
#>
#> wmt1 wmt2 wmt3 wmt4 wmt5 wmt6 wmt7 wmt8 wmt9 wmt10 wmt11 wmt12 wmt13
#> 1 2 2 1 2 3 3 3 4 4 4 2 1
#> wmt14 wmt15 wmt16 wmt17 wmt18
#> 4 2 NA 1 2
#>
#> ----
#>
#> Unidimensional Method: Louvain
#> Unidimensional: No
#>
#> ----
#>
#> TEFI: -9.771
#>
#> ----
#>
#> Random-Intercept Estimator: ML
#> Random-Intercept Loading: 0.601 0.644 0.625 0.629 0.628 0.669 0.644 0.626 0.644 0.656 0.589 0.597 0.594 0.620 0.618 0.613 0.590 0.557
# no plot for CRAN checks