kfa | R Documentation |
The function splits the data into k folds. For each fold,
EFAs are run on the training data and the simple structure for each model
is transformed into lavaan
-compatible CFA syntax. The CFAs are then run
on the test data.
kfa( variables, k = NULL, m = floor(ncol(variables)/4), seed = 101, cores = NULL, custom.cfas = NULL, power.args = list(rmsea0 = 0.05, rmseaA = 0.08), rotation = "oblimin", simple = TRUE, threshold = NA, ordered = FALSE, estimator = NULL, missing = "listwise", ... )
variables |
a |
k |
number of folds in which to split the data. Default is |
m |
integer; maximum number of factors to extract. Default is 4 items per factor. |
seed |
integer passed to |
cores |
integer; number of CPU cores to use for parallel processing. Default is |
custom.cfas |
a single object or named |
power.args |
named |
rotation |
character (case-sensitive); any rotation method listed in
|
simple |
logical; Should the simple structure be returned (default) when converting EFA results to CFA syntax?
If |
threshold |
numeric between 0 and 1 indicating the minimum (absolute) value of the loading for a variable on a factor when converting EFA results to CFA syntax. Must be specified when |
ordered |
logical; Should items be treated as ordinal and the
polychoric correlations used in the factor analysis? When |
estimator |
if |
missing |
default is "listwise". See |
... |
other arguments passed to |
In order to be tested along with the EFA identified structures, each model supplied in custom.cfas
must
include all variables
in lavaan
compatible syntax. To test a model when dropping
a variable, have the variable load on to one factor while constraining the loading to 0.
Deciding an appropriate m can be difficult, but is consequential for both the possible factor structures to
examine and the computation time. The n_factors
in the parameters
package
can assist with this decision.
An object of class "kfa"
, which is a four-element list
:
cfas lavaan
CFA objects for each k fold
cfa.syntax syntax used to produce CFA objects
model.names vector of names for CFA objects
efa.structures all factor structures identified in the EFA
# simulate data based on a 3-factor model with standardized loadings sim.mod <- "f1 =~ .7*x1 + .8*x2 + .3*x3 + .7*x4 + .6*x5 + .8*x6 + .4*x7 f2 =~ .8*x8 + .7*x9 + .6*x10 + .5*x11 + .5*x12 + .7*x13 + .6*x14 f3 =~ .6*x15 + .5*x16 + .9*x17 + .4*x18 + .7*x19 + .5*x20 f1 ~~ .2*f2 f2 ~~ .2*f3 f1 ~~ .2*f3 x9 ~~ .2*x10" set.seed(1161) sim.data <- simstandard::sim_standardized(sim.mod, n = 900, latent = FALSE, errors = FALSE)[c(2:9,1,10:20)] # include a custom 2-factor model custom2f <- paste0("f1 =~ ", paste(colnames(sim.data)[1:10], collapse = " + "), "\nf2 =~ ",paste(colnames(sim.data)[11:20], collapse = " + ")) mods <- kfa(variables = sim.data, k = NULL, # prompts power analysis to determine number of folds cores = 2, custom.cfas = custom2f)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.