miInference | R Documentation |
This function combines the results from data analyses performed after multiple imputation using methods described by Rubin (1987) and others.
miInference( est.list, std.err.list, method = "scalar", df.complete = NULL ) ## S3 method for class 'miInference' print( x, ...)
est.list |
a list of estimates to be combined. Each component of this list should be a scalar or vector containing point estimates from the analysis of an imputed dataset. This list should have M components, where M is the number of imputations, and all components should have the same length. |
std.err.list |
a list of standard errors to be combined. Each
component of this list should be a scalar or vector of
standard errors associated with the estimates in |
method |
how are the estimates to be combined? At present,
the only type allowed is |
df.complete |
degrees of freedom assumed for the complete-data
inference. This should be a scalar
or a vector of the same length as the components of |
x |
a result from |
... |
values to be passed to the methods. |
If df.complete = NULL
or Inf
, the degrees of
freedom are computed by
the method of Rubin (1987, Chap.3), which assumes that if there were no
missing data, the usual normal approximation for large samples
would be appropriate, i.e. that
a 95% interval would be computed as the estimate
plus or minus 1.96 standard errors. Otherwise, the degrees of
freedom are computed by the method of Barnard and Rubin (1999),
which assumes that an approximate 95% interval without missing data
would be the estimate plus or
minus qt(.975, df.complete)
standard errors.
The result from this function is a list whose class
attribute has been set to "miInference"
. If this list is displayed
or printed via the generic function print
, it will be
formatted into a table resembling the output from a regression
analysis with columns for the estimates, standard errors,
t-ratios (estimates divided by their standard errors) and p-values
for testing the null hypothesis that each estimate is zero.
a list with the following components:
names |
character-string labels for the estimands. This is
derived from the |
est |
combined estimate(s). |
std.err |
standard error(s) for |
df |
degrees of freedom for Student-t approximation. For
example, 95% intervals can be computed as |
p |
p-value(s) for testing the null hypothesis that each estimand is zero against a two-tailed alternative. |
rel.incr |
estimated relative increase(s) in variance due to nonresponse. |
mis.inf |
estimated rate(s) of missing information. |
Rubin (1987) defined the rate of missing information
as rel.incr + 2/(df+3)
divided by (rel.incr+1)
, which
estimates the information lost due to missing values and due to the
fact that the number of multiple imputations is finite. We define it
as rel.incr
divided by (rel.incr+1)
, the information
lost due
to missing values, which is consistent with the formulas of
Barnard and Rubin (1999).
Joe Schafer Joseph.L.Schafer@census.gov
Barnard, J. and Rubin, D.B. (1999) Small-sample degrees of freedom
with multiple imputation. Biometrika, 86, 948-955.
Rubin, D.B. (1987) Multiple Imputation for
Nonresponse in Surveys. New York: Wiley.
# generate ten multiple imputations for 2x2 table, compute # log-odds ratios and standard errors, and combine fitML <- cvam( ~ V1 * V2, data=crime, freq=n ) # run EM first set.seed(54981) result <- cvam( fitML, method="MCMC", control=list( iterMCMC=5000, imputeEvery=500 ) ) impData <- get.imputedFreq(result)[-(1:2)] # just the frequencies est.list <- std.err.list <- as.list(1:10) # to hold the estimates and SEs for( m in 1:10 ) { f <- impData[,m] est.list[[m]] <- log( (f[1] * f[4]) / (f[2] * f[3]) ) std.err.list[[m]] <- sqrt( sum(1/f) ) } miInference( est.list, std.err.list )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.