ggmice
equivalent of mice
plotsHow to re-create the output of the plotting functions from
mice
with ggmice
. In alphabetical order of the
mice
functions.
First load the ggmice
, mice
, and
ggplot2
packages, some incomplete data and a
mids
object into your workspace.
bwplot
Box-and-whisker plot of observed and imputed data.
densityplot
Density plot of observed and imputed data.
fluxplot
Influx and outflux plot of multivariate missing data patterns.
md.pattern
Missing data pattern plot.
plot.mids
Plot the trace lines of the MICE algorithm.
stripplot
Stripplot of observed and imputed data.
# ggmice equivalent
ggmice(imp, aes(x = .imp, y = hgt)) +
geom_jitter(width = 0.25) +
labs(x = "Imputation number")
# extended reproduction with ggmice (not recommended)
ggmice(imp, aes(x = .imp, y = hgt)) +
geom_jitter(
shape = 1,
width = 0.1,
na.rm = TRUE,
data = data.frame(
hgt = dat$hgt,
.imp = factor(rep(1:imp$m, each = nrow(dat))),
.where = "observed"
)
) +
geom_jitter(shape = 1, width = 0.1) +
labs(x = "Imputation number") +
theme(legend.position = "none")
xyplot
Scatterplot of observed and imputed data.
To make ggmice
visualizations interactive, the
plotly
package can be used. For example, an interactive
influx and outflux plot may be more legible than a static one.
You may want to create a plot visualizing the imputations of multiple
variables as one object. To visualize multiple variables at once, the
variable names are saved in a vector. This vector is used together with
the functional programming package purrr
and visualization
package patchwork
to map()
over the variables
and subsequently wrap_plots
to create a single figure.
# load packages
library(purrr)
library(patchwork)
# create vector with variable names
vrb <- names(dat)
Display box-and-whisker plots for all variables.
# ggmice equivalent
p <- map(vrb, ~ {
ggmice(imp, aes(x = .imp, y = .data[[.x]])) +
geom_boxplot() +
scale_x_discrete(drop = FALSE) +
labs(x = "Imputation number")
})
wrap_plots(p, guides = "collect") &
theme(legend.position = "bottom")
Display density plots for all variables.
# ggmice equivalent
p <- map(vrb, ~ {
ggmice(imp, aes(x = .data[[.x]], group = .imp)) +
geom_density()
})
wrap_plots(p, guides = "collect") &
theme(legend.position = "bottom")
Display strip plots for all variables.
# ggmice equivalent
p <- map(vrb, ~ {
ggmice(imp, aes(x = .imp, y = .data[[.x]])) +
geom_jitter() +
labs(x = "Imputation number")
})
wrap_plots(p, guides = "collect") &
theme(legend.position = "bottom")
This is the end of the vignette. This document was generated using:
sessionInfo()
#> R version 4.4.1 (2024-06-14)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.1 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] patchwork_1.3.0 purrr_1.0.2 plotly_4.10.4 ggmice_0.1.0.9000
#> [5] ggplot2_3.5.1 mice_3.16.16 rmarkdown_2.28
#>
#> loaded via a namespace (and not attached):
#> [1] gtable_0.3.5 shape_1.4.6.1 xfun_0.48 bslib_0.8.0
#> [5] htmlwidgets_1.6.4 lattice_0.22-6 crosstalk_1.2.1 vctrs_0.6.5
#> [9] tools_4.4.1 generics_0.1.3 tibble_3.2.1 fansi_1.0.6
#> [13] highr_0.11 pan_1.9 pkgconfig_2.0.3 jomo_2.7-6
#> [17] Matrix_1.7-1 data.table_1.16.2 lifecycle_1.0.4 compiler_4.4.1
#> [21] farver_2.1.2 stringr_1.5.1 munsell_0.5.1 codetools_0.2-20
#> [25] htmltools_0.5.8.1 sys_3.4.3 buildtools_1.0.0 sass_0.4.9
#> [29] lazyeval_0.2.2 yaml_2.3.10 glmnet_4.1-8 pillar_1.9.0
#> [33] nloptr_2.1.1 jquerylib_0.1.4 tidyr_1.3.1 MASS_7.3-61
#> [37] cachem_1.1.0 iterators_1.0.14 rpart_4.1.23 boot_1.3-31
#> [41] foreach_1.5.2 mitml_0.4-5 nlme_3.1-166 tidyselect_1.2.1
#> [45] digest_0.6.37 stringi_1.8.4 dplyr_1.1.4 maketools_1.3.1
#> [49] labeling_0.4.3 splines_4.4.1 fastmap_1.2.0 grid_4.4.1
#> [53] colorspace_2.1-1 cli_3.6.3 magrittr_2.0.3 survival_3.7-0
#> [57] utf8_1.2.4 broom_1.0.7 withr_3.0.1 scales_1.3.0
#> [61] backports_1.5.0 httr_1.4.7 nnet_7.3-19 lme4_1.1-35.5
#> [65] evaluate_1.0.1 knitr_1.48 viridisLite_0.4.2 rlang_1.1.4
#> [69] Rcpp_1.0.13 glue_1.8.0 minqa_1.2.8 jsonlite_1.8.9
#> [73] R6_2.5.1