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 (casesensitive); 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 fourelement 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 3factor 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 2factor 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.