```
cfa(model = NULL, meanstructure = "default", fixed.x = "default",
orthogonal = FALSE, std.lv = FALSE, data = NULL, std.ov = FALSE,
missing = "default", ordered = NULL, sample.cov = NULL, sample.mean = NULL,
sample.nobs = NULL, group = NULL, group.label = NULL,
group.equal = "", group.partial = "", cluster = NULL, constraints = '',
estimator = "default", likelihood = "default",
information = "default", se = "default", test = "default",
bootstrap = 1000L, mimic = "default", representation = "default",
do.fit = TRUE, control = list(), start = "default",
verbose = FALSE, warn = TRUE, debug = FALSE)
```

model

A description of the user-specified model. Typically, the model
is described using the lavaan model syntax. See

`model.syntax`

for more information. Alternatively, a
parametemeanstructure

If

`TRUE`

, the means of the observed
variables enter the model. If `"default"`

, the value is set based
on the user-specified model, and/or the values of other arguments.fixed.x

If

`TRUE`

, the exogenous `x' covariates are considered
fixed variables and the means, variances and covariances of these variables
are fixed to their sample values. If `FALSE`

, they are considered
random, and the means, vorthogonal

If

`TRUE`

, the exogenous latent variables
are assumed to be uncorrelated.std.lv

If

`TRUE`

, the metric of each latent variable is
determined by fixing their variances to 1.0. If `FALSE`

, the metric
of each latent variable is determined by fixing the factor loading of the
first indicator to 1.0.data

An optional data frame containing the observed variables used in
the model. If some variables are declared as ordered factors, lavaan will
treat them as ordinal variables. This can be overriden by the

`ordered`

argument.std.ov

If

`TRUE`

, all observed variables are standardized
before entering the analysis.missing

If

`"listwise"`

, cases with missing values are removed
listwise from the data frame before analysis. If `"direct"`

or
`"ml"`

or `"fiml"`

and the estimator is maximum likelihood,
Full Information Maxiordered

Character vector. Only used if the data is in a data.frame.
Treat these variables as ordered (ordinal) variables, if they are
endogenous in the model. Importantly, all other variables will be treated
as numeric (overriding any attributes in

sample.cov

Numeric matrix. A sample variance-covariance matrix.
The rownames must contain the observed variable names.
For a multiple group analysis, a list with a variance-covariance matrix
for each group.

sample.mean

A sample mean vector. For a multiple group analysis,
a list with a mean vector for each group.

sample.nobs

Number of observations if the full data frame is missing
and only sample moments are given. For a multiple group analysis, a list
or a vector with the number of observations for each group.

group

A variable name in the data frame defining the groups in a
multiple group analysis.

group.label

A character vector. The user can specify which group (or
factor) levels need to be selected from the grouping variable, and in which
order. If

`NULL`

(the default), all grouping levels are selected, in the
order as they appear in the data.group.equal

A vector of character strings. Only used in
a multiple group analysis. Can be one or more of the following:

`"loadings"`

, `"intercepts"`

, `"means"`

, `"thresholds"`

,
`"regressions"`

,

group.partial

A vector of character strings containing the labels
of the parameters which should be free in all groups (thereby
overriding the group.equal argument for some specific parameters).

cluster

Not used yet.

constraints

Additional (in)equality constraints not yet included in the
model syntax. See

`model.syntax`

for more information.estimator

The estimator to be used. Can be one of the following:

`"ML"`

for maximum likelihood, `"GLS"`

for generalized least
squares, `"WLS"`

for weighted least squares (sometimes called ADF
estimation), `"ULS"`

`likelihood`

`Only relevant for ML estimation. If ``"wishart"`

,
the wishart likelihood approach is used. In this approach, the covariance
matrix has been divided by N-1, and both standard errors and test
statistics are based on N-1.
If

`information`

`If ``"expected"`

, the expected information matrix
is used (to compute the standard errors). If `"observed"`

, the
observed information matrix is used. If `"default"`

, the value is
set depending on the estimator

`se`

`If ``"standard"`

, conventional standard errors
are computed based on inverting the (expected or observed) information
matrix. If `"first.order"`

, standard errors are computed based on
first-order derivatives. If `"`

`test`

`If ``"standard"`

, a conventional chi-square test is computed.
If `"Satorra.Bentler"`

, a Satorra-Bentler scaled test statistic is
computed. If `"Yuan.Bentler"`

, a Yuan-Bentler scaled test statistic
is computed. I

`bootstrap`

`Number of bootstrap draws, if bootstrapping is used.`

`mimic`

`If ``"Mplus"`

, an attempt is made to mimic the Mplus
program. If `"EQS"`

, an attempt is made to mimic the EQS program.
If `"default"`

, the value is (currently) set to `"lavaan"`

,
which is very close

`representation`

`If ``"LISREL"`

the classical LISREL matrix
representation is used to represent the model (using the all-y variant).

`do.fit`

`If ``FALSE`

, the model is not fit, and the current
starting values of the model parameters are preserved.

`control`

```
A list containing control parameters passed to the optimizer.
By default, lavaan uses
````"nlminb"`

. See the manpage of
`nlminb`

for an overview of the control parameters.
A different op

`start`

```
If it is a character string,
the two options are currently
````"simple"`

and `"Mplus"`

.
In the first
case, all parameter values are set to zero, except the factor loadings
(set to one), the variances of latent variables

`verbose`

`If ``TRUE`

, the function value is printed out during
each iteration.

`warn`

`If ``TRUE`

, some (possibly harmless) warnings are printed
out during the iterations.

`debug`

`If ``TRUE`

, debugging information is printed out.

`Value`

- An object of class
lavaan

, for which several methods
are available, including a `summary`

method.

`Details`

`The ``cfa`

function is a wrapper for the more general
`lavaan`

function, using the following default arguments:
`int.ov.free = TRUE`

, `int.lv.free = FALSE`

,
`auto.fix.first = TRUE`

(unless `std.lv = TRUE`

),
`auto.fix.single = TRUE`

, `auto.var = TRUE`

,
`auto.cov.lv.x = TRUE`

, and `auto.cov.y = TRUE`

.

`References`

```
Yves Rosseel (2012). lavaan: An R Package for Structural Equation
Modeling. Journal of Statistical Software, 48(2), 1-36. URL
http://www.jstatsoft.org/v48/i02/.
```

`See Also`

`lavaan`

`Examples`

`Run this code````
## The famous Holzinger and Swineford (1939) example
HS.model <- 'visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
fit <- cfa(HS.model, data=HolzingerSwineford1939)
summary(fit, fit.measures=TRUE)
```

Run the code above in your browser using DataCamp Workspace