[R-sig-ME] Mixed Design ANOVA in R after MICE imputation

Maarten Jung jungm@@rten @ending from gm@il@com
Mon Jan 7 03:01:28 CET 2019


Hi Lisa,

the mice::complete() function returns the completed data in a
specified format, after that you probably have to convert it into
long-formatted data if you want to use ez::ezANOVA().
Please note that this mailing list is about mixed models and your
question doesn't seem to be about this topic.

Best regards, Maarten

On Sun, Jan 6, 2019 at 5:18 PM Lisa Snel <lisa_1995_s using hotmail.com> wrote:
>
> Dear all,
>
> I have a question about performing a Mixed Design ANOVA in R after multiple imputation using MICE. My data is as follows:
>
> id <- c(1,2,3,4,5,6,7,8,9,10)
> group <- c(0,1,1,0,0,1,0,0,0,1)
> measure_1 <- c(60,80,90,54,60,61,77,67,88,90)
> measure_2 <- c(55,88,88,55,70,62,78,66,65,92)
> measure_3 <- c(58,88,85,56,68,62,89,62,70,99)
> measure_4 <- c(64,80,78,92,65,64,87,65,67,96)
> measure_5 <- c(64,85,80,65,74,69,90,65,70,99)
> measure_6 <- c(70,83,80,55,73,64,91,65,91,89)
> dat <- data.frame(id, group, measure_1, measure_2, measure_3, measure_4, measure_5, measure_6)
> dat$group <- as.factor(dat$group)
>
> So: we have 6 repeated measurements of diastolic blood pressure (measure 1 till 6). The grouping factor is gender, which is called group. This variable is coded 1 if male and 0 if female. Before multiple imputation, we have used the following code in R:
>
> library(reshape)
> library(reshape2)
> datLong <- melt(dat, id = c("id", "group"), measured = c("measure_1", "measure_2", "measure_3", "measure_4", "measure_5", "measure_6"))
> datLong
>
> colnames(datLong) <- c("ID", "Gender", "Time", "Score")
> datLong
> table(datLong$Time)
> datLong$ID <- as.factor(datLong$ID)
>
> library(ez)
> model_mixed <- ezANOVA(data = datLong,
>                dv = Value,
>                wid = ID,
>                within = Time,
>                between = Gender,
>                detailed = TRUE,
>                type = 3,
>                return_aov = TRUE)
> model_mixed
>
> This worked perfectly. However, our data is not complete. We have missing values, that we impute using MICE:
>
> id <- c(1,2,3,4,5,6,7,8,9,10)
> group <- c(0,1,1,0,0,1,0,0,0,1)
> measure_1 <- c(60,80,90,54,60,61,77,67,88,90)
> measure_2 <- c(55,NA,88,55,70,62,78,66,65,92)
> measure_3 <- c(58,88,85,56,68,62,89,62,70,99)
> measure_4 <- c(64,80,78,92,NA,NA,87,65,67,96)
> measure_5 <- c(64,85,80,65,74,69,90,65,70,99)
> measure_6 <- c(70,NA,80,55,73,64,91,65,91,89)
> dat <- data.frame(id, group, measure_1, measure_2, measure_3, measure_4, measure_5, measure_6)
> dat$group <- as.factor(dat$group)
>
> imp_anova <- mice(dat, maxit = 0)
> meth <- imp_anova$method
> pred <- imp_anova$predictorMatrix
> imp_anova <- mice(dat, method = meth, predictorMatrix = pred, seed = 2018, maxit = 10, m = 5)
>
> (The imputation gives logged events, because of the made-up data and the simple imputation code e.g id used as a predictor. For my real data, the imputation was correct and valid)
>
> Now I have the imputed dataset of class ‘mids’. I have searched the internet, but I cannot find how I can perform the mixed design ANOVA on this imputed set, as I did before with the complete set using ezANOVA. Is there anyone who can and wants to help me?
>
>
> Best,
>
> Lisa
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-mixed-models using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models



More information about the R-sig-mixed-models mailing list