5 votos

¿Cómo combinar conjuntos de datos de imputación múltiple creados con MICE a partir de diferentes cohortes?

Tengo datos de dos cohortes distintas. Si no se imputan, simplemente rbind() los dos conjuntos de datos y analizarlos. Sin embargo, debido a los valores perdidos no aleatorios, fue necesario realizar una imputación para ambas cohortes por separado. Así que ahora tengo datos de dos cohortes que se imputan 5 veces cada uno. El resultado son 5 conjuntos de datos imputados para ambas cohortes (10 conjuntos de datos).

¿Cómo analizaría o combinaría estos datos? Creo que rbind.mids() puede utilizarse para combinar dos conjuntos de datos imputados.

Si lo hago, ¿seguirán teniendo sentido los resultados de ese conjunto de datos combinados? Por ejemplo, ¿puede pool() ¿todavía se utiliza?

2voto

RPC Puntos 31

Sugiero combinar los datos de las 2 cohortes en primer plano e imputar después. Para incluir la información sobre las 2 cohortes diferentes en su imputación, podría añadir una variable de cohorte.

Este es un ejemplo en R :

# Example data
N <- 1000
x1 <- rnorm(N)
x2 <- x1 + rnorm(N)
x3 <- x2 + rnorm(N)
x1[rbinom(N, 1, 0.1) == 1] <- NA
x2[rbinom(N, 1, 0.1) == 1] <- NA
x3[rbinom(N, 1, 0.1) == 1] <- NA
data_c1 <- data.frame(x1 = x1[1:(N / 2)],
                  x2 = x2[1:(N / 2)],
                  x3 = x3[1:(N / 2)])
data_c2 <- data.frame(x1 = x1[501:N],
                  x2 = x2[501:N],
                  x3 = x3[501:N])

# Combine data sets
data <- rbind(data_c1, data_c2)

# Add cohort vector
data$cohort <- as.factor(c(rep(1, N / 2), rep(2, N / 2)))

# Impute; cohort vector is used as auxiliary variable
library("mice")
imp <- mice(data)
data_imp <- complete(imp, "broad")

En este punto, podría aplicar otros pasos de análisis, como pool() por ejemplo.

1voto

Para muchos modelos tendrá sentido combinar las dos cohortes antes de la imputación y utilizar ratones en los datos combinados para imputarlos simultáneamente. Sin embargo, puede haber ocasiones en las que quiera especificar diferentes métodos de imputación o utilizar diferentes variables para la imputación en diferentes cohortes. Por ejemplo, si algunas variables sólo se miden en ciertas cohortes, se puede especificar la imputación en esas cohortes para aprovechar la información extra. Es posible imputarlas por separado y combinar las imputaciones utilizando mice::rbind. En el siguiente R código Imputo un conjunto de datos utilizando el emparejamiento de medias predictivas y el otro utilizando la regresión lineal bayesiana, luego combino los dos conjuntos de imputaciones y ajusto un glm a las imputaciones combinadas.

library(mice)
set.seed(123)
N = 100

x1 <- rnorm(n = N)
y1 <- x1 + rnorm(n = N)
y1[which(rbinom(n = N, size = 1, prob = 0.3) == 1)] <- NA #Make some missing
data1 <- data.frame(x = x1,y = y1)

x2 <- rnorm(n = N)
y2 <- x2 + rnorm(n = N)
y2[which(rbinom(n = N, size = 1, prob = 0.3) ==1)] <- NA
data2 <- data.frame(x = x2,y = y2)

impute_1 <- mice(data = data1,
                 method = "pmm")
impute_2 <-mice(data = data2,
                method = "norm")
imputes_full <- rbind(impute_1,impute_2)

models <- with(data = imputes_full,
               expr = {glm(y~x)})
summary(pool(models))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X