add_cross_loadings {latentFactoR} | R Documentation |
Adds (Substantial) Cross-loadings to simulate_factors
Data
Description
Intended to add substantial cross-loadings to simulated data from simulate_factors
.
See examples to get started
Usage
add_cross_loadings(
lf_object,
proportion_cross_loadings,
proportion_cross_loadings_range = NULL,
magnitude_cross_loadings,
magnitude_cross_loadings_range = NULL,
leave_cross_loadings = FALSE
)
Arguments
lf_object |
Data object from |
proportion_cross_loadings |
Numeric (length = 1 or |
proportion_cross_loadings_range |
Numeric (length = 2). Range of proportion of variables that should be cross-loaded randomly onto one other factor. Accepts number of variables to cross-load onto one other factor as well |
magnitude_cross_loadings |
Numeric (length = 1, |
magnitude_cross_loadings_range |
Numeric (length = 2).
The range of the magnitude or size of the cross-loadings.
Defaults to |
leave_cross_loadings |
Boolean.
Should cross-loadings be kept?
Defaults to |
Value
Returns a list containing the same parameters as the original
lf_object
but with updated data
, population_correlation
,
and parameters
(specifically, loadings
matrix). Also returns
original lf_object
in original_results
Author(s)
Alexander P. Christensen <alexpaulchristensen@gmail.com>, Hudson Golino <hfg9s@virginia.edu>, Luis Eduardo Garrido <luisgarrido@pucmm.edu>
References
Christensen, A. P., Garrido, L. E., & Golino, H. (2022). Unique variable analysis: A network psychometrics method to detect local dependence. PsyArXiv
Examples
# Generate factor data
two_factor <- simulate_factors(
factors = 2, # factors = 2
variables = 6, # variables per factor = 6
loadings = 0.55, # loadings between = 0.45 to 0.65
cross_loadings = 0.05, # cross-loadings N(0, 0.05)
correlations = 0.30, # correlation between factors = 0.30
sample_size = 1000 # number of cases = 1000
)
# Add substantial cross-loadings
two_factor_CL <- add_cross_loadings(
lf_object = two_factor,
proportion_cross_loadings = 0.25,
magnitude_cross_loadings = 0.35
)
# Randomly vary proportions
two_factor_CL <- add_cross_loadings(
lf_object = two_factor,
proportion_cross_loadings_range = c(0, 0.25),
magnitude_cross_loadings = 0.35
)
# Randomly vary magnitudes
two_factor_CL <- add_cross_loadings(
lf_object = two_factor,
proportion_cross_loadings = 0.25,
magnitude_cross_loadings_range = c(0.35, 0.45)
)
# Set number of cross-loadings per factor (rather than proportion)
two_factor_CL <- add_cross_loadings(
lf_object = two_factor,
proportion_cross_loadings = 2,
magnitude_cross_loadings = 0.35
)