REM_EFA {REMLA} | R Documentation |
Robust Estimation Maximization for Exploratory Factor Analysis
Description
This function uses the robust expectation maximization (REM) algorithm to estimate the parameters of an exploratory factor analysis model as suggested by Nieser & Cochran (2021).
Usage
REM_EFA(X, k_range, delta = 0.05, rotation = "oblimin", ctrREM = controlREM())
Arguments
X |
data to analyze; should be a data frame or matrix |
k_range |
vector of the number of factors to consider |
delta |
hyperparameter between 0 and 1 that captures the researcher’s tolerance of incorrectly down-weighting data from the model (default = 0.05) |
rotation |
factor rotation method (default = 'oblimin'); 'varimax' is the only other available option at this time |
ctrREM |
control parameters (default: (steps = 25, tol = 1e-6, maxiter = 1e3, min_weights = 1e-30, max_ueps = 0.3, chk_gamma = 0.9, n = 2e4)) |
Value
REM_EFA returns an object of class "REM". The function summary()
is used to obtain estimated parameters from the model. An object of class "REM" in Exploratory Factor Analysis is a list of outputs with four different components for each number of factor: the matched call (call), estimates using traditional expectation maximization (EM_output), estimates using robust expectation maximization (REM_output), and a summary table (summary_table). The list contains the following components:
call |
match call |
model |
model frame |
k |
number of factors |
constraints |
p x k matrix of zeros and ones denoting the factors (rows) and observed variables (columns) |
epsilon |
hyperparameter on the likelihood scale |
AIC_rem |
Akaike information criterion based on REM estimates |
BIC_rem |
Bayesian information criterion based on REM estimates |
mu |
item intercepts |
lambda |
factor loadings |
psi |
unique variances of items |
phi |
factor covariance matrix |
gamma |
average weight |
weights |
estimated REM weights |
ind_lik |
likelihood value for each individual |
lik_rem |
joint log-likelihood evaluated at REM estimates |
lik |
joint log-likelihood evaluated at EM estimates |
mu.se |
standard errors of items intercepts |
lambda.se |
standard errors of factor loadings |
psi.se |
standard errors of unique variances of items |
gamma.se |
standard error of gamma |
summary_table |
summary of EM and REM estimates, SEs, Z statistics, p-values, and 95% confidence intervals |
The summary function can be used to obtain estimated parameters from the optimal model based on the BIC from the EM and REM algorithms.
Author(s)
Bryan Ortiz-Torres (bortiztorres@wisc.edu); Kenneth Nieser (nieser@stanford.edu)
References
Nieser, K. J., & Cochran, A. L. (2021). Addressing heterogeneous populations in latent variable settings through robust estimation. Psychological Methods.
See Also
summary.REMLA()
for more detailed summaries, oblimin()
and varimax()
for details on the rotation
Examples
# Modeling Exploratory Factor Analysis
library(lavaan)
library(GPArotation)
df <- HolzingerSwineford1939
data = df[,-c(1:6)]
model_EFA = REM_EFA( X = data, k_range = 1:3, delta = 0.05)
summary(model_EFA)