Function | Description |
---|---|
mice.impute.lasso.norm() |
Lasso linear regression |
mice.impute.lasso.logreg() |
Lasso logistic regression |
mice.impute.lasso.select.norm() |
Lasso selector + linear regression |
mice.impute.lasso.select.logreg() |
Lasso selector + logistic regression |
Contributed by @EdoardoCostantini (#438).
Adds Jamshidian && Jalal’s non-parametric MCAR test, mice::MCAR()
and associated plot method. Contributed by @cjvanlissa (#423).
Adds two new functions pool.syn()
and pool.scalar.syn()
that specialise pooling estimates from synthetic data. The "reiter2003"
pooling rule assumes that synthetic data were created from complete data. Thanks Thom Volker (#436).
Avoids changing the global .Random.seed
(#426, #432) by implementing withr::local_preserve_seed()
and withr::local_seed()
. This change provides stabler behavior in complex scripts. The change does not appear to break reproducibility when mice()
was run with a seed. Nevertheless, if you run into a reproducibility problem, install mice 3.13.12
or before.
Improves the imputation of parabolic data in mice.impute.quadratic()
, adds a parameter quad.outcome
containing the name of the outcome variable in the complete-data model. Contributed @Mingyang-Cai, @gerkovink (#408)
By default, mice.impute.rf()
now uses the faster ranger
package as back-end instead of randomForest
package. If you want the old behaviour specify the rfPackage = "randomForest"
argument to the mice(...)
call. Contributed @prockenschaub (#431).
Generalises pool()
so that it processes the parameters from all gamlss
sub-models. Thanks Marcio Augusto Diniz (#406, #405)
Uses the robust standard error estimate for pooling when pool()
can extract robust.se
from the object returned by broom::tidy()
(#310)
install.on.demand()
broke the standard CRAN workflow. mice 3.14.0 does not call install.on.demand()
anymore for recommended packages. Also, install.on.demand()
will not run anymore in non-interactive mode.mice:::barnard.rubin()
function for infinite dfcom
. Thanks @huftis (#441).Xi <- as.matrix(...)
in mice.impute.2l.lmer()
that occurred when a cluster contains only one observation (#384)predictorMatrix
to a monotone pattern if visitSequence = "monotone"
and maxit = 1
(#316)md.pattern()
(#318, #323)make.formulas()
(#305, #324)newdata
in mice.mids()
(#313, #325)where
element created in rbind()
(#319)pool()
cannot take a mids
object (#433)mice.impute.2l.lmer()
to indicate a problem in fitting the imputation model (#385)post
parameter (#326)mids2spss()
replaces the foreign
by haven
package. Contributed Gerko Vink (#291)tests\testhat\test-D1.R
that failed on mitml 0.4-0
with.mids()
function to old version because the change in commit 4634094 broke downstream package metafor
(#292)mice.impute.rf()
in finding candidate donors (#288, #289)matchindex
C function makes predictive mean matching 50 to 600 times faster. The speed of pmm
is now on par with normal imputation (mice.impute.norm()
) and with the miceFast
package, without compromising on the statistical quality of the imputations. Thanks to Polkas https://github.com/Polkas/miceFast/issues/10 and suggestions by Alexander Robitzsch. See #236 for more details.ignore
argument to mice
ignore
argument to mice()
. This argument is a logical vector of nrow(data)
elements indicating which rows are ignored when creating the imputation model. We may use the ignore
argument to split the data into a training set (on which the imputation model is built) and a test set (that does not influence the imputation model estimates). The argument is based on the suggestion in https://github.com/amices/mice/issues/32#issuecomment-355600365. See #32 for more background and techniques. Crafted by Patrick Rockenschaubfilter()
function for mids
objectsfilter()
method that subsets a mids
object (multiply-imputed data set). The method accepts a logical vector of length nrow(data)
, or an expression to construct such a vector from the incomplete data. (#269). Crafted by Patrick Rockenschaub.matcher
algorithm in pmm
has changed to matchindex
for speed improvements. If you want the old behavior, specify mice(..., use.matcher = TRUE)
.cpp11
package (#286)with.mids()
by calling eval_tidy()
on a quosure. Does not yet solve #265.pool()
and pool.scalar()
(#142, #106, #190 and others)tidy.mipo
more flexible (#276)nelsonaalen()
gets a tibble
(#272)NA
s can appear in the imputed data (#267)quickpred()
documentation (#268)sum.scores()
lm.mids()
, glm.mids()
, pool.compare()
.pmm.match()
and expandcov()
return()
calls placed just before end-of-functionprintFlag
value (#258)amices
df.residual
, which caused problematic behavior in the D1()
, D2()
, D3()
, anova()
and pool()
. mice
now extracts the relevant information from other parts of the objects returned by survival::coxph()
, which solves long-standing issues with the integration of the Cox model (#246).Rccp
dependency to work with tidyr 1.1.1
(#248).Non-file package-anchored link(s) in documentation object
.ampute
documentation (#251).suggests
.tidy.mipo()
and glance.mipo()
return standardized output that conforms to broom
specifications. Kindly contributed by Vincent Arel Bundock (#240).D3
testing script that produced an error on CRAN (#244).D3()
function in mice
gave incorrect results. This version solves a problem in the calculation of the D3
-statistic. See #226 and #228 for more details. The documentation explains why results from mice::D3()
and mitml::testModels()
may differ.pool()
function is now more forgiving when there is no glance()
function (#233)remove.lindep()
by setting eps = 0
(#225)plot.mids()
documentationmice.impute.mnar.norm()
and mice.impute.mnar.logreg()
. These functions aid in performing sensitivity analysis to investigate the impact of different MNAR assumptions on the conclusion of the study. An alternative for MNAR is the older mice.impute.ri()
function.mice
is faster. External packages needed for imputation and analyses are now installed on demand. The number of dependencies as estimated by rsconnect::appDepencies()
decreased from 132 to 83.complete()
function of tidyr
should no longer be a problem.pool()
function that integrates better with the broom
and broom.mixed
packages.pool.compare()
. Use D1()
instead (#220)utils::globalVariables()
tidyr
by defining complete.mids()
as an S3 method for the tidyr::complete()
generic (#212)pool()
function to deal with multiple sets of parameters. Currently supported keywords are: term
(all broom
functions), component
(some broom.mixed
functions) and y.values
(for multinom()
model) (#219)install.on.demand()
function for lighter installationtoenail2
and remove dependency on HSAUR3
ampute
in extreme cases (#216)pool
with mgcv::gam
(#218).gitattributes
for consistent line endingspolr()
always fail (#206)data.frame
(#208)mira-class
documentation (#207)CALIBERrfimpute
2lonly.norm
and 2lonly.pmm
a2
to elementwise division by a matrix of observations2lonly.norm
and 2lonly.pmm
2lonly.pmm
2lonly.mean
now also works with factorsimputationMethod
argument in examples by method
check.predictorMatrix()
(#191)toenail
data from orphaned DPpackage
packageDPpackage
from Suggests
field in DESCRIPTION
md.pattern()
(#170, #177)as.mids
() (#173)mice.impute.xxx()
so that mice::mice()
works as expected (#55)mids2spss()
, thanks Edgar Schoreit (#149)predictorMatrix
.mice 3.3.1
will impute those variables using the intercept onlynelsonaalen()
function for data where variables time
or status
have already been defined (#140), thanks matthieu-faronmice 3.0.0
- mice 3.2.0
under passive imputation.broom 0.5.0
(#128)mice.impute.2l.norm()
(#129)mice.impute.2l.norm()
(#129)D1()
(#128)md.pattern
(#126)rbind
and cbind
(#114)rbind
problem when method
is a list (#113)parlmice
(#109)dfcom
argument to pool()
(#105, #110)parlmice
+ bugfix (#107)parlmice
(#104)flux
(#102)estimice
(#101)parent.frame
(#98)NEWS.md
, index.Rmd
and online package documentation.R
instead of .r
updateLog
(#8, @alexanderrobitzsch)md.pattern
(#90)m
(#89)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.
mids
object in mice
(thanks stephematician) (#61)rbind.mids
(thanks stephematician) (#59)pool.compare()
in handling factors (#60)rbind.mids
in handling where
(#59)as.mids()
, add as()
cart
not accepting a matrix (thanks Joerg Drechsler)pool()
to list of modelsampute
function and vignettes (Rianne Schouten)mice.impute.2l.sys
to mice.impute.2l.lmer
where
argument to micewy
argument to imputation functionsmice.impute.2l.sys()
, author Shahab Jolanicbind()
functionmids
objectlattice
packagexyplot.mads
mice.impute.2lonly.pmm()
ampute()
by Rianne Schoutenmice
function (thanks Ben Ogorek)cbind.mids()
replaced by calls to cbind()
miceVignettes
on github (thanks Gerko Vink)README
for GitHubccn
–> ncc
, icn
–> nic
cc()
, ncc()
, cci()
, ic()
, nic()
and ici()
use S3
dispatchmultinom
MaxNWts type fix in polyreg
and polr
#9pool.compare
#12as.mids
if names not same as all columns #11glmer
models #5midastouch
: predictive mean matching for small samples (thanks Philip Gaffert, Florian Meinfelder)rpart
callridge
to 2l.norm()
.o
filesas.mids()
bug that crashed miceadds::mice.1chain()
Update of example code on /doc
Remove lots of dependencies, general cleanup
Fix impute.polyreg()
bug that bombed if there were no predictors (thanks Jan Graffelman)
Fix as.mids()
bug that gave incorrect \(m\) (several users)
Fix pool.compare()
error for lmer
object (thanks Claudio Bustos)
Fix error in mice.impute.2l.norm()
if just one NA
(thanks Jeroen Hoogland)
pool.scalar()
now can do Barnard-Rubin adjustmentpool()
now handles class lmerMod
from the lme4
package.pmm.match()
for safetymice.impute.pmm()
for increased visibilitymice.impute.rf()
from 100 to 10 (thanks Anoop Shah)long2mids()
deprecated. Use as.mids()
insteadlattice
back into DEPENDS to find generic xyplot()
and friends2lonly.pmm
(thanks Alexander Robitzsch, Gerko Vink, Judith Godin)as.mids()
(thanks Tommy Nyberg, Gerko Vink)mdc()
in example mice.impute.quadratic()
mice.impute.rf()
if just one NA
(thanks Anoop Shah)summary.mipo()
when names(x$qbar)
equals NULL
(thanks Aiko Kuhn)ncol()
in mice.impute.2lonly.mean()