Skip to content

Releases: amices/mice

mice 3.16.0

05 Jun 18:35
Compare
Choose a tag to compare

Major changes

  • Expands futuremice() functionality by allowing for external packages and user-written functions (#550). Contributed @thomvolker

  • Adds GH issue templates bug_report, feature_request and help_wanted (#560). Contributed @hanneoberman

Minor changes

  • Removes documentation files for rbind.mids() and cbind.mids() to conform to CRAN policy
  • Adds mitml and glmnet to imports so that test code conforms to _R_CHECK_DEPENDS_ONLY=true flag in R CMD check
  • Initializes random number generator in futuremice() if there is no .Random.seed yet.
  • Updates GitHub actions for package checking and site building
  • Preserves user settings in predictorMatrix for case F by adding a predictorMatrix argument to make.predictorMatrix()
  • Polishes mice.impute.mpmm() example code

Bug fixes

  • Adds proper support for factors to mice.impute.2lonly.pmm() (#555)
  • Solves function naming problems for S3 generic functions tidy(), update(), format() and sum()
  • Out-comments and weeds example&test code to silence R CMD check with _R_CHECK_DEPENDS_ONLY=true
  • Fixes small bug in futuremice() that throws an error when the number of cores is not specified, but the number of available cores is greater than the number of imputations.
  • Solves a bug in mice.impute.mpmm() that changed the column order of the data

mice 3.15.0

21 Nov 11:43
Compare
Choose a tag to compare

mice 3.15.0

Major changes

  • Adds a function futuremice() with support for parallel imputation using the future package (#504). Contributed @thomvolker, @gerkovink

  • Adds multivariate predictive mean matching mice.impute.mpmm(). (#460). Contributed @Mingyang-Cai

  • Adds convergence() for convergence evaluation (#484). Contributed @hanneoberman

  • Reverts the internal seed behaviour back to mice 3.13.10 (#515). #432 introduced new local seed in response to #426. However, various issues arose with this facility (#459, #492, #502, #505). This version restores the old behaviour using global .Random.seed. Contributed @gerkovink

  • Adds a custom.t argument to pool() that allows the advanced user to specify a custom rule for calculating the total variance $T$. Contributed @gerkovink

  • Adds new argument exclude to mice.impute.pmm() that excludes a user-specified vector of values from matching. Excluded values will not appear in the imputations. Since the observed values are not imputed, the user-specified values are still being used to fit the imputation model (#392, #519). Contributed @gerkovink

Minor changes

  • Styles all .R and .Rmd files
  • Makes post-processing assignment consistent with lines 85/86 in sampler.R (#511)
  • Edit test broken on R<4 (#501). Contributed @MichaelChirico
  • Adds support for models reporting contrasts rather than terms (#498). Contributed @LukasWallrich
  • Applies edits to autocorrelation function (#491). Contributed @hanneoberman
  • Changes p-value calculation to more robust alternative (#494). Contributed @AndrewLawrence
  • Uses inherits() to check on class membership
  • Adds decprecation notices to parlmice()
  • Adapt prop, patterns and weights matrices for pattern with only 1's
  • Adds warning when patterns cannot be generated (#449, #317, #451)
  • Adds warning on the order of model terms in D1() and D2() (#420)
  • Adds example code to fit model on train data and apply to test data to mice()
  • Adds example code on synthetic data generation and analysis in make.where()
  • Adds testfile test-mice.impute.rf.R(#448)

Bug fixes

  • Replaces .Random.seed reads from the .GlobalEnv by get(".Random.seed", envir = globalenv(), mode = "integer", inherits = FALSE)
  • Repairs capitalisation problems with lastSeedValue variable name
  • Solves x$lastSeedValue problem in cbind.mids() (#502)
  • Fixes problems with ampute()
  • Preserves stochastic nature of mice() by smarter random seed initialisation (#459)
  • Repairs a drop = FALSE buglet in mice.impute.rf() (#447, #448)
  • @str-amg reported that the new dependency on withr package should have version 2.4.0 (published in January 2021) or higher. Versions withr 2.3.0 and before may give Error: object 'local_seed' is not exported by 'namespace:withr'. Either update manually, or install the patched version mice 3.14.1 from GitHub. (#445). NOTE: withr is no longer needed in mice 3.15.0

mice 3.14.0

24 Nov 19:29
Compare
Choose a tag to compare

Major changes

  • Adds four new univariate functions using the lasso for automatic variable selection:
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)

Bug fixes

  • Contains an emergency solution as 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.
  • Repairs an error in the mice:::barnard.rubin() function for infinite dfcom. Thanks @huftis (#441).
  • Solves problem with Xi <- as.matrix(...) in mice.impute.2l.lmer() that occurred when a cluster contains only one observation (#384)
  • Edits the predictorMatrix to a monotone pattern if visitSequence = "monotone" and maxit = 1 (#316)
  • Solves a problem with the plot produced by md.pattern() (#318, #323)
  • Fixes the intercept in make.formulas() (#305, #324)
  • Fixes seed when using newdata in mice.mids() (#313, #325)
  • Solves a problem with row names of the where element created in rbind() (#319)
  • Solves a bug in mnar imputation routine. Contributed by Margarita Moreno Betancur.

Minor changes

  • Replaces URL to jstatsoft with DOI
  • Update reference to literature (#442)
  • Informs the user that pool() cannot take a mids object (#433)
  • Updates documentation for post-processing functionality (#387)
  • Adds Rcpp necessities
  • Solves a problem with "last resort" initialisation of factors (#410)
  • Documents the "flat-line behaviour" of mice.impute.2l.lmer() to indicate a problem in fitting the imputation model (#385)
  • Add reprex to test (#326)
  • Documents that multivariate imputation methods do not support the post parameter (#326)

mice 3.13.0

27 Jan 10:40
Compare
Choose a tag to compare

Major changes

  • Updated mids2spss() replaces the foreign by haven package. Contributed Gerko Vink (#291)

Minor changes

  • Repairs an error in tests\testhat\test-D1.R that failed on mitml 0.4-0
  • Reverts with.mids() function to old version because the change in commit 4634094 broke downstream package metafor (#292)
  • Solves a glitch in mice.impute.rf() in finding candidate donors (#288, #289)

mice 3.12.0

14 Nov 19:59
Compare
Choose a tag to compare

Much faster predictive mean matching

  • The new 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 Polkas/miceFast#10 and
    suggestions by Alexander Robitzsch. See #236 for more details.

New ignore argument to mice

  • New 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
    #32 (comment). See #32 for
    more background and techniques. Crafted by Patrick Rockenschaub

New filter() function for mids objects

  • New filter() 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.

Changes affecting reproducibility

  • Breaking change: The matcher algorithm in pmm has changed to matchindex
    for speed improvements. If you want the old behavior, specify mice(..., use.matcher = TRUE).

Minor changes

  • Corrected installation problem related to cpp11 package (#286)
  • Simplifies with.mids() by calling eval_tidy() on a quosure. Does not yet solve #265.
  • Improve documentation for pool() and pool.scalar() (#142, #106, #190 and others)
  • Makes tidy.mipo more flexible (#276)
  • Solves a problem if nelsonaalen() gets a tibble (#272)
  • Add explanation to how NAs can appear in the imputed data (#267)
  • Add warning to quickpred() documentation (#268)
  • Styles all sources files with styler
  • Improves consistency in code and documentation
  • Moves internally defined functions to global namespace
  • Solves bug in internal sum.scores()
  • Adds deprecated messages to lm.mids(), glm.mids(), pool.compare()
  • Removes expandcov()
  • Strips out all return() calls placed just before end-of-function
  • Remove all trailing spaces
  • Repairs a bug in the routine for finding the printFlag value (#258)
  • Update URL's after transfer to organisation amices

mice 3.11.0

11 Aug 19:47
Compare
Choose a tag to compare

Major changes

  • The Cox model does not return 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).
  • Adds missing Rccp dependency to work with tidyr 1.1.1 (#248).

Minor changes

  • Addresses warnings: Non-file package-anchored link(s) in documentation object.
  • Updates on ampute documentation (#251).
  • Ask user permission before installing a package from suggests.

mice 3.10.0

13 Jul 14:55
Compare
Choose a tag to compare

Major changes

  • New functions tidy.mipo() and glance.mipo() return standardized output that conforms to broom specifications. Kindly contributed by Vincent Arel Bundock (#240).

Minor changes

  • Solves a problem with the D3 testing script that produced an error on CRAN (#244).

mice 3.9.0

14 May 17:53
Compare
Choose a tag to compare

Major changes

  • The 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.
  • The pool() function is now more forgiving when there is no glance() function (#233)
  • It is possible to bypass remove.lindep() by setting eps = 0 (#225)

Minor changes

  • Adds reference to Leacy's thesis
  • Adds an example to the plot.mids() documentation

mice 3.8.0

22 Feb 13:57
Compare
Choose a tag to compare

Major changes

  • This version adds two new NARFCS methods for imputing data under the Missing Not at Random (MNAR) assumption. NARFCS is generalised version of the so-called delta-adjustment method. Margarita Moreno-Betancur and Ian White kindly contributed the functions mice.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.
  • Installation of 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.
  • The name clash with the complete() function of tidyr should no longer be a problem.
  • There is now a more flexible pool() function that integrates better with the broom and broom.mixed packages.

Bug fixes

  • Deprecates pool.compare(). Use D1() instead (#220)
  • Removes everything in utils::globalVariables()
  • Prevents name clashes with tidyr by defining complete.mids() as an S3 method for the tidyr::complete() generic (#212)
  • Extends the 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)
  • Adds a new install.on.demand() function for lighter installation
  • Adds toenail2 and remove dependency on HSAUR3
  • Solves problem with ampute in extreme cases (#216)
  • Solves problem with pool with mgcv::gam (#218)
  • Adds .gitattributes for consistent line endings

mice 3.7.0

13 Dec 14:53
Compare
Choose a tag to compare

This release is "on its way to CRAN". This version updates the package with cumulative fixes since June 2019.

  • Solves a bug that made polr() always fail (#206)
  • Aborts if one or more columns are a data.frame (#208)
  • Update mira-class documentation (#207)
  • Remove links to deprecated package CALIBERrfimpute
  • Adds check on partial missing level-2 data to 2lonly.norm and 2lonly.pmm
  • Change calculation of a2 to elementwise division by a matrix of observations
  • Extend documentation for 2lonly.norm and 2lonly.pmm
  • Repair return value from 2lonly.pmm
  • Imputation method 2lonly.mean now also works with factors
  • Replace deprecated imputationMethod argument in examples by method
  • More informative error message when stopped after pre-processing (#194)
  • Updated URL's in DESCRIPTION
  • Fix string matching in check.predictorMatrix() (#191)