Title: | Multiple Imputation by Distance Aided Donor Selection |
---|---|
Description: | Contains the function mice.impute.midastouch(). Technically this function is to be run from within the 'mice' package (van Buuren et al. 2011), type ??mice. It substitutes the method 'pmm' within mice by 'midastouch'. The authors have shown that 'midastouch' is superior to default 'pmm'. Many ideas are based on Siddique / Belin 2008's MIDAS. |
Authors: | Philipp Gaffert [aut, cre], Florian Meinfelder [aut], Volker Bosch [aut] |
Maintainer: | Philipp Gaffert <[email protected]> |
License: | GPL-2 | GPL-3 |
Version: | 1.3 |
Built: | 2025-02-12 03:55:44 UTC |
Source: | https://github.com/cran/midastouch |
Imputes univariate missing data using predictive mean matching
mice.impute.midastouch(y, ry, x, ridge = 1e-05, midas.kappa = NULL, outout = TRUE, neff = NULL, debug = NULL, ...)
mice.impute.midastouch(y, ry, x, ridge = 1e-05, midas.kappa = NULL, outout = TRUE, neff = NULL, debug = NULL, ...)
y |
Numeric vector with incomplete data |
ry |
Response pattern of |
x |
Design matrix with |
ridge |
The ridge penalty applied to prevent problems with multicollinearity. The default is |
midas.kappa |
Scalar. If |
outout |
Logical. If |
neff |
FOR EXPERTS. Null or character string. The name of an existing environment in which the effective sample size of the donors for each loop (CE iterations times multiple imputations) is supposed to be written. The effective sample size is necessary to compute the correction for the total variance as originally suggested by Parzen, Lipsitz and Fitzmaurice 2005. The objectname is |
debug |
FOR EXPERTS. Null or character string. The name of an existing environment in which the input is supposed to be written. The objectname is |
... |
Other named arguments. |
Imputation of y
by predictive mean matching, based on Rubin (1987, p.
168, formulas a and b) and Siddique and Belin 2008. The procedure is as follows:
Draw a bootstrap sample from the donor pool.
Estimate a beta matrix on the bootstrap sample by the leave one out principle.
Compute type II predicted values for yobs
(nobs x 1) and ymis
(nmis x nobs).
Calculate the distance between all yobs
and the corresponding ymis
.
Convert the distances in drawing probabilities.
For each recipient draw a donor from the entire pool while considering the probabilities from the model.
Take its observed value in y
as the imputation.
Numeric vector of length sum(!ry)
with imputations
Philipp Gaffert, Florian Meinfelder, Volker Bosch 2015
Gaffert, P., Meinfelder, F., Bosch V. (2015) Towards an MI-proper Predictive Mean Matching, Discussion Paper. https://www.uni-bamberg.de/fileadmin/uni/fakultaeten/sowi_lehrstuehle/statistik/Personen/Dateien_Florian/properPMM.pdf
Little, R.J.A. (1988), Missing data adjustments in large surveys (with discussion), Journal of Business Economics and Statistics, 6, 287–301.
Parzen, M., Lipsitz, S. R., Fitzmaurice, G. M. (2005), A note on reducing the bias of the approximate bayesian bootstrap imputation variance estimator. Biometrika 92, 4, 971–974.
Rubin, D.B. (1987), Multiple imputation for nonresponse in surveys. New York: Wiley.
Siddique, J., Belin, T.R. (2008), Multiple imputation using an iterative hot-deck with distance-based donor selection. Statistics in medicine, 27, 1, 83–102
Van Buuren, S., Brand, J.P.L., Groothuis-Oudshoorn C.G.M., Rubin, D.B. (2006), Fully conditional specification in multivariate imputation. Journal of Statistical Computation and Simulation, 76, 12, 1049–1064.
Van Buuren, S., Groothuis-Oudshoorn, K. (2011), mice
: Multivariate
Imputation by Chained Equations in R
. Journal of Statistical
Software, 45, 3, 1–67. http://www.jstatsoft.org/v45/i03/
## from R:: mice, slightly adapted ## # do default multiple imputation on a numeric matrix library(midastouch) library(mice) imp <- mice(nhanes, method = 'midastouch') imp # list the actual imputations for BMI imp$imp$bmi # first completed data matrix complete(imp) # imputation on mixed data with a different method per column mice(nhanes2, method = c('sample','midastouch','logreg','norm'))
## from R:: mice, slightly adapted ## # do default multiple imputation on a numeric matrix library(midastouch) library(mice) imp <- mice(nhanes, method = 'midastouch') imp # list the actual imputations for BMI imp$imp$bmi # first completed data matrix complete(imp) # imputation on mixed data with a different method per column mice(nhanes2, method = c('sample','midastouch','logreg','norm'))