‘lavResiduals’ provides model residuals and standardized residuals from a fitted lavaan object, as well as various summaries of these residuals.
The ‘residuals()’ (and ‘resid()’) methods are just shortcuts to this function with a limited set of arguments.
lavResiduals(object, type = "cor.bentler", h1 = NULL,
se = FALSE, zstat = TRUE, summary = TRUE, elementwise = TRUE,
combine = FALSE, usrmr_ci_level = 0.90, usrmr_close_h0 = 0.05,
h1_acov = "unstructured",
add_type = TRUE, add_labels = TRUE, add_class = TRUE,
drop_list_single_group = TRUE,
maximum_number = 0L, n_largest = 5L, output = "list", ...)If drop_list_single_group = TRUE, a list of (residualized) summary
statistics, including type, standardized residuals, and summaries. If
drop_list_single_group = FALSE, the list of summary statistics is nested
within a list for each group.
An object of class lavaan.
Character.
If type = "raw", this function returns the raw (= unscaled)
difference between the observed and the expected (model-implied) summary
statistics, as well as the standardized version of these residuals.
If type = "cor", or type = "cor.bollen", the observed and model
implied covariance matrices are first transformed to a correlation matrix
(using cov2cor()), before the residuals are computed.
If type = "cor.bentler", both the observed and model implied covariance
matrices are rescaled by dividing the elements by the square roots of the
corresponding variances of the observed covariance matrix.
Optional. A user-provided saturated (unrestricted) model supplying
the observed summary statistics against which the model-implied statistics are
compared. It can be a fitted lavaan object (its h1
slot is used), a lavh1 list (a list with an implied element), or
an implied-moments list (a list with a cov or res.cov element,
per block). It must be compatible with object (same number of blocks
and same dimensions). If NULL (the default), the saturated statistics of
object itself are used.
Logical. If TRUE, show the estimated standard errors
for the residuals.
Logical. If TRUE, show the standardized residuals, which
are the raw residuals divided by the corresponding (estimated) standard
errors.
Logical. If TRUE, show various summaries of the
(possibly scaled) residuals. When type = "raw", we compute the
RMR. When type = "cor.bentler",
we compute the SRMR. When type = "cor.bollen", we compute the CRMR.
An unbiased version of these summaries (the URMR, USRMR and UCRMR) is also
computed (Maydeu-Olivares, 2017).
The two versions are reported with different inferential statistics, and this asymmetry is intentional. The sample RMR/SRMR/CRMR overestimate (are positively biased for) their population values. For these (biased) statistics, we report a standard error and a test of exact fit (the null hypothesis that the population value equals zero). This test relies on the known sampling distribution of the (biased) sample statistic under exact fit (Maydeu-Olivares, 2017, Eqs. 28--30), where the bias is explicitly accounted for. For the (approximately) unbiased URMR/USRMR/UCRMR, we report a standard error, a confidence interval, and a test of close fit (the null hypothesis that the population value equals a small nonzero cutoff, e.g. 0.05). The confidence interval and the close-fit test require an (approximately) unbiased and normally distributed estimator, which is precisely why the unbiased version is used here. Conversely, no test of exact fit is reported for the unbiased estimator: because it is truncated at zero, its sampling distribution is degenerate at the exact-fit boundary, so the test of exact fit is (correctly) only based on the biased statistic.
Logical. If TRUE (the default), the element-wise
residuals are included: the (residualized) summary statistics when
output = "list", or the largest-residuals table(s) when
output = "text". If FALSE, these are omitted and only the summary
information is returned/shown (provided summary = TRUE). Combined with
summary = FALSE, this gives full control over which parts are produced.
Logical. Only relevant when multiple blocks are
involved (multiple groups, or multiple levels). If FALSE (the default),
a separate summary table is shown for each block. If TRUE, the
block-specific summary tables are replaced by a single overall summary table in
which the residual elements are pooled across all blocks (so, e.g., the SRMR is
computed from the residuals of all groups or all levels at once). The combined
table is returned as the summary element at the top level of the result.
The pooling correctly accounts for the (block-diagonal) independence of separate
groups and for the (joint) sampling covariance across the levels of a multilevel
model.
Numeric. The confidence level of the confidence interval that is reported (in the summary) for the unbiased URMR/USRMR/UCRMR. The default is 0.90.
Numeric. The value of the population URMR/USRMR/UCRMR under the null hypothesis of the test of close fit that is reported (in the summary) for the unbiased estimator. The default is 0.05.
Character. If "unstructured", the observed summary
statistics are used as consistent estimates of the corresponding (unrestricted)
population statistics. If "structured", the model-implied summary
statistics are used as consistent estimates of the corresponding (unrestricted)
population statistics. This affects the way the asymptotic variance matrix
of the summary statistics is computed.
Logical. If TRUE, show the type of residuals
in the output.
If TRUE, variable names are added to the vectors
and/or matrices.
If TRUE, vectors are given the ‘lavaan.vector’
class; matrices are given the ‘lavaan.matrix’ class, and symmetric
matrices are given the ‘lavaan.matrix.symmetric’ class.
This only affects the way they are printed on the screen.
If FALSE, the results are returned as
a list, where each element corresponds to a group (even if there is only
a single group). If TRUE, the list will be unlisted if there is
only a single group.
Integer. Only used if output = "table". If larger
than zero, show only the first maximum_number rows of the data.frame. The
default (0L) shows all rows.
Integer. Only used if output = "text". The number of
largest (in absolute value) residuals that are shown, per element group
(covariances, variances, intercepts, thresholds, regression slopes) and per
block.
Character. By default, output = "list", and the output
is a list of elements. If output = "table", the residuals are shown in
a single data.frame, one row per residual element, sorted from high (in
absolute value) to low. All residual elements are included: the (co)variances
(lhs~~rhs), the means/intercepts (lhs~1), the thresholds
(lhs|t1) and, when conditional.x = TRUE, the regression slopes
(lhs~rhs). Variances (the diagonal) are only shown for the raw-style
metrics (type = "raw", "normalized" or "standardized"),
not for the correlation metrics where they are structurally zero. Structurally
fixed moments (e.g. saturated means or just-identified thresholds) are omitted.
If se = TRUE, a se column with the standard errors is added; if
zstat = TRUE, a z column with the z-statistics is added.
If output = "text" (or, equivalently, "pretty"), the output is
printed in the same style as the fit measures (e.g.\ the RMSEA). First, a table
with the n_largest largest residuals (per element group, and per block)
is shown, formatted like parameterEstimates(., output = "text") but with
a ‘Residual’ column (and, if available, ‘Std.Err’ and
‘Z-value’ columns); its header reflects the residual type (e.g.\
“Largest Standardized Residuals (Cor.Bentler)” or “Largest Raw
Residuals”). Next, the residual summary table(s) are shown. When multiple blocks
are involved and combine = FALSE, one summary is printed per block;
otherwise a single (combined) summary is printed.
To support old argument names.
Bentler, P.M. and Dijkstra, T. (1985). Efficient estimation via linearization in structural models. In Krishnaiah, P.R. (Ed.), Multivariate analysis - VI, (pp. 9--42). New York, NY: Elsevier.
Ogasawara, H. (2001). Standard errors of fit indices using residuals in structural equation modeling. Psychometrika, 66(3), 421--436. doi:10.1007/BF02294443
Maydeu-Olivares, A. (2017). Assessing the size of model misfit in structural equation models. Psychometrika, 82(3), 533--558. doi:10.1007/s11336-016-9552-7
Standardized Residuals in Mplus. Document retrieved from URL http://www.statmodel.com/download/StandardizedResiduals.pdf
HS.model <- ' visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9 '
fit <- cfa(HS.model, data = HolzingerSwineford1939)
lavResiduals(fit)
Run the code above in your browser using DataLab