Help for old friends
This documents describes the changes between mice 2.46.0
and mice 3.0.0. Most code written for versions
mice 2.12 - mice 2.46.0 should run unchanged. I have tried
to minimize the changes to the function arguments, but it was not
possible to remain 100% backward compatible. This document outlines the
visible changes, and suggests ways how to adapt old code to
mice 3.0.
mice function arguments
| Argument | 2.46.0 | 3.0.0 |
|---|---|---|
| method | length ncol(data)
|
length length(blocks)
|
| predictorMatrix |
ncol(data) rows and columns |
length(blocks) rows,
ncol(data) columns |
| blocks | not defined | new argument |
| visitSequence |
integer, arbitrary length |
character, arbitrary length |
| form | character, length ncol(data)
|
deprecated |
| formulas | not defined | named list of formulas |
| blots | not defined | named list of alist
|
| diagnostics | deprecated | |
| imputationMethod | deprecated, use method
|
|
| defaultImputationMethod | deprecated, use defaultMethod
|
|
| … |
No changes were made for the following arguments: data,
m, where, post,
defaultMethod, maxit, printFlag,
seed and data.init.
If blocks is not specified, then each variable is
allocated to a separate block. In that case, length(blocks)
is identical to ncol(data), and the method in
mice 3.0.0 reduces to variable-by-variable imputation, as
in mice 2.46.0 and before.
Argument visitSequence may still be specified as
integer or numeric, but it will internally be
converted into character using the column names in
data.
An existing function call to mice using the old
form argument may result in an error
Argument "formulas" not a list. The advice is to specify
the formula as a list, e.g.,
pool() function uses broom
mice 2.46.0 and before used coef() and
vcov() to extract the parameters from the complete-data
model. There were two problems with this approach: 1)
coef() or vcov() were often not defined for
the analysis of interest, 2) their output was not standard across
procedures. Older versions of mice therefore needed quite
some custom code to extract the parameters and their variance
estimates.
mice 3.0.0 uses the broom package for this
task. The advantage is that the standardised output. The downside is
that (still) many packages offer no defined tidy.xxx() and
glance.xxx() functions. In those cases, the user sees the
error message
Error: No tidy methods for objects of class xxx. See the
pool() documentation for what to do in those cases.
pool() for mixed models requires
library(broom.mixed)
mice automatically loads the broom package.
Tidiers for mixed models live in the broom.mixed packages
and this is NOT automatically loaded. If you want to pool the results of
mixed model, issue library(broom.mixed) before calling the
pool() function.
