1
$\begingroup$

I need to do a Multiple Imputation on a dataset with several missing values, and I need to do it with mice, because later I'll have to compare the results with those of imputations ran with other programs.

My colleague obtained a completa dataset by running a MI on the incomplete dataset, with 5 iterations, and then taking the 5 imputed datasets and manually calculating mean values. Se essentially he pooled manually. I'm far from an expert so I don't know if this operation is valid.

Anyways, in MICE so far I could run the imputation (again, with maxit=5), using the function "imp<-mice(eco)", where "eco" is the incomplete dataset. So I obtained the 5 imputed datasets, stored in the object "imp", of class "MIDS". Now I just need to pool the 5 completed datasets to obtain a unique complete one, i don't wanna run analyses on the 5 datasets and then pool the results. Can that be done? If I got it right from the manual, it seems that MICE allows you to pool only after you ran some analysis on the imputed datasets. The analysis is repeated on each dataset and the results are stored in an object of class "MIRA". I tried to run the function "pool()" on "imp" but it can't be done because imp is of class "mids" and you can only pool mira objects.

The manual also says that to pool you need a variance/covariance relation, and in the example given there they run a linear regression and then they pool the results of the regression. But I doubt if it's what I need. I'm confused

$\endgroup$
3
$\begingroup$

A major point of multiple imputations is to do separate analyses on each of the imputed data sets, so that you can get both pooled estimates of things like regression coefficients and an estimate of the errors in the coefficients. Averaging the imputed data sets first is not the correct use of this approach. And don't limit yourself to so few imputations; with modern computers there's no reason not to do 100 or more. See http://www.stefvanbuuren.nl/mi/MI.html, from the person who developed the mice package, for further information.

$\endgroup$
  • $\begingroup$ +1 for not limiting yourself to few imputations. This paper shows that we usually need more than we think we do. $\endgroup$ – Kenji Jun 1 '17 at 13:47
-2
$\begingroup$

iris.mis is the data with missing values

imputed_Data <- mice(iris.mis, m=5, maxit = 50, method = 'pmm', seed = 500)
    summary(imputed_Data)

Here is an explanation of the parameters used: m – Refers to 5 imputed data sets maxit – Refers to no. of iterations taken to impute missing values method – Refers to method used in imputation. we used predictive mean matching.

check imputed values

imputed_Data$imp$Sepal.Width

Also, if you wish to build models on all 5 datasets, you can do it in one go using with() command. You can also combine the result from these models and obtain a consolidated output using pool() command.

build predictive model

fit <- with(imputed_Data,lm(Sepal.Width ~ Sepal.Length +
                                          Petal.Width)) 

combine results of all 5 models

summary(pool(fit))
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.