This class extends the lavaan::lavaanList class, created by fitting a lavaan model to a list of data sets. In this case, the list of data sets are multiple imputations of missing data.
# S4 method for lavaan.mi
show(object)# S4 method for lavaan.mi
summary(
object,
header = TRUE,
fit.measures = FALSE,
fm.args = list(standard.test = "default", scaled.test = "default", rmsea.ci.level =
0.9, rmsea.h0.closefit = 0.05, rmsea.h0.notclosefit = 0.08, robust = TRUE,
cat.check.pd = TRUE),
estimates = TRUE,
ci = FALSE,
standardized = FALSE,
std = standardized,
cov.std = TRUE,
rsquare = FALSE,
fmi = FALSE,
asymptotic = FALSE,
scale.W = !asymptotic,
omit.imps = c("no.conv", "no.se"),
remove.unused = TRUE,
modindices = FALSE,
nd = 3L,
...
)
# S4 method for lavaan.mi
nobs(object, total = TRUE)
# S4 method for lavaan.mi
coef(object, type = "free", labels = TRUE, omit.imps = c("no.conv", "no.se"))
# S4 method for lavaan.mi
vcov(
object,
type = c("pooled", "between", "within", "ariv"),
scale.W = TRUE,
omit.imps = c("no.conv", "no.se")
)
# S4 method for lavaan.mi
fitted(object, omit.imps = c("no.conv", "no.se"))
# S4 method for lavaan.mi
fitted.values(object, omit.imps = c("no.conv", "no.se"))
# S4 method for lavaan.mi
fitMeasures(
object,
fit.measures = "all",
baseline.model = NULL,
h1.model = NULL,
fm.args = list(standard.test = "default", scaled.test = "default", rmsea.ci.level =
0.9, rmsea.h0.closefit = 0.05, rmsea.h0.notclosefit = 0.08, robust = 0.08,
cat.check.pd = TRUE),
output = "vector",
omit.imps = c("no.conv", "no.se"),
...
)
# S4 method for lavaan.mi
fitmeasures(
object,
fit.measures = "all",
baseline.model = NULL,
h1.model = NULL,
fm.args = list(standard.test = "default", scaled.test = "default", rmsea.ci.level =
0.9, rmsea.h0.closefit = 0.05, rmsea.h0.notclosefit = 0.08, robust = 0.08,
cat.check.pd = TRUE),
output = "vector",
omit.imps = c("no.conv", "no.se"),
...
)
signature(object = "lavaan.mi", type = "free", labels = TRUE, omit.imps = c("no.conv","no.se"))
:
See argument description on the help page for lavaan::lavaan class.
Returns the pooled point estimates (i.e., averaged across imputed data
sets; see Rubin, 1987).
signature(object = "lavaan.mi", scale.W = TRUE, omit.imps = c("no.conv","no.se"), type = c("pooled","between","within","ariv"))
: By default, returns the
pooled covariance matrix of parameter estimates (type = "pooled"
),
the within-imputations covariance matrix (type = "within"
), the
between-imputations covariance matrix (type = "between"
), or the
average relative increase in variance (type = "ariv"
) due to
missing data.
signature(object = "lavaan.mi", omit.imps = c("no.conv","no.se"))
: See corresponding lavaan::lavaan method.
Returns model-implied moments, evaluated at the pooled point estimates.
alias for fitted.values
signature(object = "lavaan.mi", total = TRUE)
: either
the total (default) sample size or a vector of group sample sizes
(total = FALSE
).
signature(object = "lavaan.mi", fit.measures = "all", baseline.model = NULL, h1.model = NULL, fm.args = list(standard.test = "default", scaled.test = "default", rmsea.ci.level = 0.90, rmsea.h0.closefit = 0.05, rmsea.h0.notclosefit = 0.08, robust = TRUE, cat.check.pd = TRUE), output = "vector", omit.imps = c("no.conv","no.se"), ...)
:
See lavaan::fitMeasures()
for details.
Pass additional arguments to lavTestLRT.mi()
via ...
.
alias for fitMeasures
.
signature(object = "lavaan.mi")
: returns a message about
convergence rates and estimation problems (if applicable) across imputed
data sets.
signature(object = "lavaan.mi", header = TRUE, fit.measures = FALSE,fm.args = list(standard.test = "default", scaled.test = "default", rmsea.ci.level = 0.90, rmsea.h0.closefit = 0.05, rmsea.h0.notclosefit = 0.08, robust = TRUE, cat.check.pd = TRUE), estimates = TRUE, ci = FALSE, standardized = FALSE, std = standardized, cov.std = TRUE, rsquare = FALSE, fmi = FALSE, asymptotic = FALSE, scale.W = !asymptotic, omit.imps = c("no.conv","no.se"), remove.unused = TRUE, modindices = FALSE, nd = 3L, ...)
:
Analogous to summary()
for lavaan-class
objects.
By default, summary
returns output from parameterEstimates.mi()
,
with some cursory information in the header.
Setting fit.measures=TRUE
will additionally run fitMeasures()
, and
setting modindices=TRUE
will additionally run modindices.mi()
.
An object of class lavaan.mi
See descriptions of summary()
arguments in the help page for
lavaan::lavaan class. Also see lavaan::fitMeasures()
for arguments
fit.measures
and fm.args
.
logical
indicating whether to add the Fraction Missing
Information (FMI) and (average) relative increase in variance (ARIV)
to the output.
logical
. If FALSE
(typically a default, but
see Value section for details using various methods), pooled
tests (of fit or pooled estimates) will be F or t
statistics with associated degrees of freedom (df). If
TRUE
, the (denominator) df are assumed to be
sufficiently large for a t statistic to follow a normal
distribution, so it is printed as a z statistic; likewise,
F times its numerator df is printed, assumed to follow
a \(\chi^2\) distribution.
logical
. If TRUE
(default), the vcov
method will calculate the pooled covariance matrix by scaling the
within-imputation component by the ARIV (see Enders, 2010, p. 235,
for definition and formula). Otherwise, the pooled matrix is
calculated as the weighted sum of the within-imputation and
between-imputation components (see Enders, 2010, ch. 8, for details).
This in turn affects how the summary
method calculates its
pooled standard errors, as well as the Wald test
(lavTestWald.mi()
).
character
vector specifying criteria for omitting
imputations from pooled results. Can include any of
c("no.conv", "no.se", "no.npd")
, the first 2 of which are the
default setting, which excludes any imputations that did not
converge or for which standard errors could not be computed. The
last option ("no.npd"
) would exclude any imputations which
yielded a nonpositive definite covariance matrix for observed or
latent variables, which would include any "improper solutions" such
as Heywood cases. NPD solutions are not excluded by default because
they are likely to occur due to sampling error, especially in small
samples. However, gross model misspecification could also cause
NPD solutions, users can compare pooled results with and without
this setting as a sensitivity analysis to see whether some
imputations warrant further investigation. Specific imputation
numbers can also be included in this argument, in case users want to
apply their own custom omission criteria (or simulations can use
different numbers of imputations without redundantly refitting the
model).
Additional arguments passed to lavTestLRT.mi()
, or
subsequently to lavaan::lavTestLRT()
. This is how users can
specify a pool.method=
for the model's \(\chi^2\) statistic
(optionally used in any fit.measures=
), or set pool.method="D1"
when summary(modindices=TRUE)
.
logical
(default: TRUE
) indicating whether the
nobs()
method should return the total sample size or (if
FALSE
) a vector of group sample sizes.
The meaning of this argument varies depending on which method it
it used for. Find detailed descriptions in the Value section
under coef()
and vcov()
.
logical
indicating whether the coef()
output
should include parameter labels. Default is TRUE
.
See lavaan::fitMeasures()
.
coefList
list
of estimated coefficients in matrix format (one
per imputation) as output by lavInspect(fit, "est")
phiList
list
of model-implied latent-variable covariance
matrices (one per imputation) as output by
lavInspect(fit, "cov.lv")
miList
list
of modification indices output by
lavaan::modindices()
lavListCall
call to lavaan::lavaanList()
used to fit the
model to the list of imputed data sets in @DataList
, stored as a
list
of arguments
convergence
list
of logical
vectors indicating whether,
for each imputed data set, (1) the model converged on a solution, (2)
SEs could be calculated, (3) the (residual) covariance matrix of
latent variables (\(\Psi\)) is non-positive-definite, and (4) the
residual covariance matrix of observed variables (\(\Theta\)) is
non-positive-definite.
version
Named character
vector indicating the lavaan
and
lavaan.mi
version numbers.
DataList
The list
of imputed data sets
SampleStatsList
List of output from
lavInspect(fit, "sampstat")
applied to each fitted model.
ParTableList,vcovList,testList,baselineList
See lavaan::lavaanList
h1List
See lavaan::lavaanList. An additional element is
added to the list
: $PT
is the "saturated" model's parameter
table, returned by lavaan::lav_partable_unrestricted()
.
call,Options,ParTable,pta,Data,Model,meta,timingList,CacheList,optimList,impliedList,loglikList,internalList,funList,external
By default, lavaan.mi()
does not populate the remaining @*List
slots
from the lavaan::lavaanList class. But they can be added to the call using
the store.slots=
argument (passed to lavaan::lavaanList()
via ...).
See the lavaan.mi()
function
for details. Wrapper functions include cfa.mi()
,
sem.mi()
, and growth.mi()
.
Terrence D. Jorgensen (University of Amsterdam; TJorgensen314@gmail.com)
Enders, C. K. (2010). Applied missing data analysis. New York, NY: Guilford.
Rubin, D. B. (1987). Multiple imputation for nonresponse in surveys. New York, NY: Wiley. tools:::Rd_expr_doi("10.1002/9780470316696")
data(HS20imps) # import a list of 20 imputed data sets
## specify CFA model from lavaan's ?cfa help page
HS.model <- '
visual =~ x1 + x2 + x3
textual =~ x4 + x5 + x6
speed =~ x7 + x8 + x9
'
## fit model to imputed data sets
fit <- cfa.mi(HS.model, data = HS20imps)
## vector of pooled coefficients
coef(fit)
## their pooled asymptotic covariance matrix
vcov(fit)
## which is the weighted sum of within- and between-imputation components
vcov(fit, type = "within")
vcov(fit, type = "between")
## covariance matrix of observed variables,
## as implied by pooled estimates
fitted(fit)
## custom null model for CFI
HS.parallel <- '
visual =~ x1 + 1*x2 + 1*x3
textual =~ x4 + 1*x5 + 1*x6
speed =~ x7 + 1*x8 + 1*x9
'
fit0 <- cfa.mi(HS.parallel, data = HS20imps, orthogonal = TRUE)
fitMeasures(fit, baseline.model = fit0, fit.measures = "default",
output = "text")
## See ?lavaan.mi help page for more examples
Run the code above in your browser using DataLab