knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-" ) options(width = 60, digits = 3) set.seed(1)
The mice
package
implements a method to deal with missing data. The package creates
multiple imputations (replacement values) for multivariate missing
data. The method is based on Fully Conditional Specification, where
each incomplete variable is imputed by a separate model. The MICE
algorithm can impute mixes of continuous, binary, unordered
categorical and ordered categorical data. In addition, MICE can impute
continuous two-level data, and maintain consistency between
imputations by means of passive imputation. Many diagnostic plots are
implemented to inspect the quality of the imputations.
The mice
package can be installed from CRAN as follows:
install.packages("mice")
The latest version can be installed from GitHub as follows:
install.packages("devtools") devtools::install_github(repo = "amices/mice")
library(mice, warn.conflicts = FALSE) # show the missing data pattern md.pattern(nhanes)
The table and the graph summarize where the missing data occur in
the nhanes
dataset.
# multiple impute the missing values imp <- mice(nhanes, maxit = 2, m = 2, seed = 1) # inspect quality of imputations stripplot(imp, chl, pch = 19, xlab = "Imputation number")
In general, we would like the imputations to be plausible, i.e., values that could have been observed if they had not been missing.
# fit complete-data model fit <- with(imp, lm(chl ~ age + bmi)) # pool and summarize the results summary(pool(fit))
The complete-data is fit to each imputed dataset, and the results are combined to arrive at estimates that properly account for the missing data.
mice 3.0
Version 3.0 represents a major update that implements the following features:
blocks
: The main algorithm iterates over blocks. A block is
simply a collection of variables. In the common MICE algorithm each
block was equivalent to one variable, which - of course - is
the default; The blocks
argument allows mixing univariate
imputation method multivariate imputation methods. The blocks
feature bridges two seemingly disparate approaches, joint modeling
and fully conditional specification, into one framework;
where
: The where
argument is a logical matrix of the same size
of data
that specifies which cells should be imputed. This opens
up some new analytic possibilities;
Multivariate tests: There are new functions D1()
, D2()
, D3()
and anova()
that perform multivariate parameter tests on the
repeated analysis from on multiply-imputed data;
formulas
: The old form
argument has been redesign and is now
renamed to formulas
. This provides an alternative way to specify
imputation models that exploits the full power of R's native
formula's.
Better integration with the tidyverse
framework, especially
for packages dplyr
, tibble
and broom
;
Improved numerical algorithms for low-level imputation function. Better handling of duplicate variables.
Last but not least: A brand new edition AND online version of Flexible Imputation of Missing Data. Second Edition.
See MICE: Multivariate Imputation by Chained Equations for more resources.
I'll be happy to take feedback and discuss suggestions. Please submit these through Github's issues facility.
mice
ampute
futuremice
: Wrapper for parallel MICE imputation through futuresThe cute mice sticker was designed by Jaden M. Walters. Thanks Jaden!
Please note that the mice project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.