¿Por qué esta imputación múltiple es de baja calidad?

9

Considere el siguiente código R:

> data <- data.frame(
            a=c(NA,2,3,4,5,6),b=c(2.2,NA,6.1,8.3,10.2,12.13),c=c(4.2,7.9,NA,16.1,19.9,23))
> data
   a     b    c
1 NA  2.20  4.2
2  2    NA  7.9
3  3  6.10   NA
4  4  8.30 16.1
5  5 10.20 19.9
6  6 12.13 23.0

Como puede ver, he diseñado los datos de manera aproximada c = 2*b = 4*a. Como tal, esperaría que los valores faltantes estén alrededor a=1, b=2, c=12. Entonces realicé el análisis:

> imp <- mi(data)
Beginning Multiple Imputation ( Sat Oct 18 03:02:41 2014 ):
Iteration 1 
 Chain 1 : a*  b*  c*  
 Chain 2 : a*  b*  c*  
 Chain 3 : a*  b*  c*  
Iteration 2 
 Chain 1 : a*  b   c   
 Chain 2 : a*  b*  c*  
 Chain 3 : a   b*  c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a*  b*  c*  
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a*  b   c   
Iteration 5 
 Chain 1 : a   b   c*  
 Chain 2 : a   b*  c   
 Chain 3 : a   b*  c   
Iteration 6 
 Chain 1 : a*  b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b*  c   
 Chain 3 : a   b   c*  
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c*  
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b*  c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a*  b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c*  
 Chain 3 : a   b   c*  
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b*  c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c*  
Iteration 20 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 21 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 22 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 23 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 24 
 Chain 1 : a   b   c*  
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 25 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 26 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 27 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 28 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 29 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
mi converged ( Sat Oct 18 03:02:45 2014 )
Run 20 more iterations to mitigate the influence of the noise...
Beginning Multiple Imputation ( Sat Oct 18 03:02:45 2014 ):
Iteration 1 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 2 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 3 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 4 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 5 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 6 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 7 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 8 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 9 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 10 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 11 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 12 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 13 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 14 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 15 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 16 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 17 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 18 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 19 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Iteration 20 
 Chain 1 : a   b   c   
 Chain 2 : a   b   c   
 Chain 3 : a   b   c   
Reached the maximum iteration, mi did not converge ( Sat Oct 18 03:02:48 2014 )

Y finalmente observó el conjunto de datos completo:

> mi.completed(imp)
[[1]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10 16.1
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[2]]
  a     b    c
1 2  2.20  4.2
2 2  6.10  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

[[3]]
  a     b    c
1 2  2.20  4.2
2 2  2.20  7.9
3 3  6.10  7.9
4 4  8.30 16.1
5 5 10.20 19.9
6 6 12.13 23.0

Como puede ver, los valores imputados no son lo que esperaba. En realidad, parecen el resultado de una imputación única, ya que los valores faltantes aparentemente se han tomado de los registros adyacentes.

¿Qué me estoy perdiendo?

Debo señalar que mi "conocimiento" en estadística se limita principalmente a lo que recuerdo vagamente de un curso introductorio que tomé hace ~ 14 años. Solo estoy buscando una manera simple de imputar valores perdidos, no tiene que ser el más optimizado, pero sí tiene que tener algún tipo de sentido (que no puedo hacer con estos resultados). Bien puede ser el caso que mino sea el enfoque correcto para lograr lo que quiero (tal vez predecir debería usarse en su lugar), así que estoy abierto a sugerencias.

También probé un enfoque similar con mice, que condujo a resultados similares.

ACTUALIZACIÓN Amelia funciona muy bien fuera de la caja. Sin embargo, aún sería interesante saber lo que me falta con mi / mouse.

t0x1n
fuente
1
¿Qué intentas hacer con la imputación múltiple en general? Es difícil para mí responder esta pregunta sin un poco más de contexto. [Tampoco me sorprende en absoluto que la calidad de su imputación sea baja dado que está trabajando con solo tres variables y seis registros]
Patrick S. Forscher
@ PatrickS.Forscher tenías razón. Acabo de probar una prueba similar con 100 registros y los resultados fueron los que esperaba. Responda esa respuesta para que pueda aceptarla, y si pudiera especificar algunos mínimos mínimos para una imputación exitosa, sería genial.
t0x1n
¿Qué dirías sobre los siguientes resultados? > mi.completed(imp) [[1]] a b c 1 0.289 2.20 4.2 2 2.000 2.57 7.9 3 3.000 6.10 12.7 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[2]] a b c 1 0.603 2.20 4.2 2 2.000 5.82 7.9 3 3.000 6.10 13.4 4 4.000 8.30 16.1 5 5.000 10.20 19.9 6 6.000 12.13 23.0 [[3]] a b c 1 1.05 2.20 4.2 2 2.00 4.18 7.9 3 3.00 6.10 12.0 4 4.00 8.30 16.1 5 5.00 10.20 19.9 6 6.00 12.13 23.0Perdón por el formato, pero supongo que es lo mejor que puedo hacer en un comentario.
Aleksandr Blekh
Amelia II es expresamente para la imputación múltiple de series de tiempo transversales (también conocidos como estudios de panel). MICE es para datos de series de tiempo no transversales (o al menos, MICE produce malas imputaciones para tales series de tiempo, ver Honaker, J. y King, G. (2010). Qué hacer con los valores faltantes en series de tiempo cruzadas -sección de datos. American Journal of Political Science , 54 (2): 561–581.)
Alexis
@AleksandrBlekh No me gustan tampoco, esperaría algo más cercano a x/ 2x/4x
t0x1n

Respuestas:

13

Dado que está utilizando seis casos [registros] y tres variables, la calidad de su imputación será bastante baja.

Para ver por qué este será el caso, recuerde que la imputación múltiple funciona al completar los valores faltantes con valores imputables plausibles. Estos valores imputados se calculan en conjuntos de datos separados (volveré sobre cómo se derivan estos valores imputados más adelante en esta respuesta). Los valores imputados variarán ligeramente de un conjunto de datos a otro.m

Por lo tanto, dada una cantidad estadística de interés (por ejemplo, una media, un coeficiente de regresión, etc.), uno puede usar los conjuntos de datos para estimar el error estándar promedio para dentro de los conjuntos de datos (una cantidad que llamaré el varianza de imputación, o ) y el grado en que varía entre los conjuntos de datos (una cantidad que llamaré varianza entre imputaciones, o ).qmqmU¯qmB

La relación entre la calidad de imputación, yBU¯

Se puede usar la varianza dentro de la imputación y la varianza entre la imputación para derivar una estimación del grado en que una estimación imputada de una cantidad estadística ha sido influenciada por la información faltante. Por supuesto, cuanta más información se haya perdido, peor será la calidad de la imputación. La estimación de la información perdida por falta se etiqueta , y viene dada por la siguiente fórmula:U¯Bγ

γ=r+2df+3r+1

r en esta fórmula es una relación de la varianza entre imputación a la varianza dentro de imputación :BU¯

r=(1+1m)BU¯

Por lo tanto, los valores altos de dan como resultado valores altos de , lo que a su vez dará como resultado valores altos de . Un alto valor de , a su vez, indica que se perdió más información debido a datos faltantes y una imputación de peor calidad.Brγγ

df en la fórmula para también es una función de y . Específicamente, se estima porγBU¯df

df=(m1)(1+mU¯(m+1)B)2

Por lo tanto, además de aumentar la relación entre la varianza entre imputación y la varianza dentro de la imputación, el aumento de también disminuye . Esto dará como resultado un valor más alto de , lo que indica más información perdida por falta y una imputación de peor calidad.d f γBdfγ

En resumen, los valores más altos de la varianza entre imputaciones afectan la calidad de imputación de dos maneras:B

  1. Los valores más altos de aumentan la relación de la varianza entre las imputaciones a la varianza dentro de las imputaciones, disminuyendo la calidad de la imputaciónB
  2. Los valores más altos de disminuyen los grados de libertad disponibles, disminuyendo la calidad de imputaciónB

La relación entre el número de casos yB

Dados dos conjuntos de datos similares de otra forma, un conjunto de datos con un número menor de casos tendrá una mayor entre imputación varianza .B

Esto ocurrirá porque, como lo describo anteriormente, la varianza entre imputación se calcula mediante el cálculo de una cantidad estadística de interés dentro de cada uno de imputada conjuntos de datos y calcular el grado en que varía a través de cada uno de los conjuntos de datos. Si un conjunto de datos dado tiene una mayor cantidad de casos, pero una cantidad similar de los valores que faltan como otro, una proporción menor de los valores será libre para variar a través de cada uno de los imputada conjuntos de datos, lo que significa que habrá menor variación total en a través de la conjuntos de datos imputados.m q m m qqmqmmq

Por lo tanto, en general, aumentar el número de casos (o, más precisamente, disminuir la proporción de valores faltantes) aumentará la calidad de la imputación.

La relación entre el número de variables yB

Dados dos conjuntos de datos similares, un conjunto de datos con un mayor número de variables tendrá una varianza entre imputación más pequeña , siempre que esas variables adicionales sean informativas sobre los valores faltantes.B

Esto ocurrirá porque, en general, los valores faltantes para una variable dada se "completan" mediante el uso de información de otras variables para generar estimaciones plausibles de los valores faltantes (los detalles específicos de cómo se generan estas estimaciones variarán según la implementación del MI estás usando). Más información en forma de variables adicionales dará como resultado valores imputados más estables, lo que resultará en una menor variación en la cantidad estadística de interés en cada uno de los conjuntos de datos imputados .mqm

Por lo tanto, en general, aumentar el número de variables disponibles en un conjunto de datos aumentará la calidad de la imputación, siempre que esas variables adicionales sean informativas sobre los valores faltantes.

Referencias

Rubin, DB (1996). Imputación múltiple después de 18 años o más. Revista de la Asociación Americana de Estadística , 91, 473-489.

Schafer, JL (1999). Imputación múltiple: una cartilla. Métodos estadísticos en la investigación médica , 8, 3-15.

Patrick S. Forscher
fuente