9 votos

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

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 se puede ver he diseñado los datos de forma que, aproximadamente, c = 2*b = 4*a. Como tal, yo esperaría que la falta de valores en torno a=1, b=2, c=12. Para realizar 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 completo conjunto de datos:

> 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 se puede ver los valores imputados no son lo que yo esperaba. En realidad, se ven como el resultado de la sola imputación como los valores que faltan han sido aparentemente tomadas de otros registros.

Lo que me estoy perdiendo?

Debo señalar que mi "conocimiento" en las estadísticas se limita principalmente a lo que yo recuerdo vagamente de un curso introductorio tomé ~14 años. Estoy buscando una manera simple para imputar los valores perdidos, no tiene que ser el más optimizado pero es necesario hacer algún tipo de sentido (que yo no puedo hacer de estos resultados). Bien puede darse el caso de que mi no es el enfoque correcto para lograr lo que quiero (tal vez predecir debe utilizarse en su lugar), así que estoy abierto a sugerencias.

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

ACTUALIZACIÓN de Amelia funciona muy bien fuera de la caja. Todavía sería interesante saber lo que me falta con mi / ratones sin embargo.

13voto

Zendmailer Puntos 138

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

A ver por qué este será el caso, recuerde que varios de imputación de las obras mediante la cumplimentación de los valores perdidos con plausible valores imputados. Estos imputado, se calculan los valores en $m$ bases de datos separadas (voy a volver a cómo estos valores imputados son los derivados más adelante en esta respuesta). El imputado valores pueden variar ligeramente de un conjunto de datos conjunto de datos.

Así, dada una estadística de la cantidad de interés $q$ (por ejemplo, un decir, un coeficiente de regresión, etc), se puede utilizar el $m$ conjuntos de datos para estimar el promedio de error estándar para $q$ dentro de las $m$ conjuntos de datos (una cantidad que voy a llamar a el dentro-de-la imputación de la varianza, o $\bar{U}$) y el grado en que $q$ varía a través de la $m$ los conjuntos de datos (una cantidad que voy a llamar a la entre-imputación de la varianza, o $B$).

La relación entre la imputación de calidad, $B$, e $\bar{U}$

Uno puede usar el dentro-de-la imputación de la varianza $\bar{U}$ y el entre-imputación de la varianza $B$ para obtener una estimación del grado en que un imputado en la estimación de una estadística de la cantidad ha sido influenciada por la falta de información. Por supuesto, cuanta más información se ha perdido, el más pobre es la calidad de la imputación. La estimación de la información perdida a missingness está etiquetada $\gamma$, y que está dado por la siguiente fórmula:

$$\gamma = \frac{r + \frac{2}{df + 3}}{r + 1}$$

$r$ en esta fórmula es una relación de entre-imputación de la varianza $B$ a el dentro-de-la imputación de la varianza $\bar{U}$:

$$r = \frac{(1 + \frac1m)B}{\bar{U}}$$

Por lo tanto, los valores altos de $B$ resultado en altos valores de $r$, que a su vez resulta en altos valores de $\gamma$. Un alto valor de $\gamma$, a su vez, indica que más de la información que se perdieron debido a la falta de datos y una peor calidad de la imputación.

$df$ en la fórmula de la $\gamma$ es también una función de $B$$\bar{U}$. Específicamente, $df$ es estimado por la

$$df = (m - 1)\left(1 + \frac{m\bar{U}}{(m + 1)B}\right)^2$$

Así, además de aumentar la proporción de entre-imputación de varianza para dentro-de-la imputación de la varianza, el aumento de $B$ también disminuye el $df$. Esto resultará en un mayor valor de $\gamma$, lo que indica más información perdida a missingness y una peor calidad de la imputación.

En suma, los valores más altos de la entre-imputación de la varianza $B$ afectan a la imputación de la calidad de dos maneras:

  1. Los valores más altos de $B$ aumento de la proporción de la varianza entre las imputaciones que la varianza dentro de las imputaciones, la disminución de la imputación de la calidad
  2. Los valores más altos de $B$ disminución de los grados de libertad disponibles, la disminución de la imputación de la calidad

La relación entre el número de casos y $B$

Dadas dos de manera similar con los conjuntos de datos, un conjunto de datos con un número menor de casos, tendrá una más grande entre la imputación de la varianza $B$.

Esto ocurre porque, como describo arriba, el entre-imputación de la varianza se calcula mediante el cálculo de un estadístico de la cantidad de interés $q$ dentro de cada uno de $m$ imputado conjuntos de datos y computación en el grado en que $q$ varía en cada una de las $m$ conjuntos de datos. Si un conjunto de datos tiene una mayor cantidad de casos, sino una cantidad similar de los valores perdidos como la otra, una pequeña proporción de los valores será libre de variar a lo largo de cada una de las $m$ imputado conjuntos de datos, lo que significa que habrá más bajos de variación en $q$ a través del imputado conjuntos de datos.

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

La relación entre el número de variables y $B$

Dadas dos de manera similar con los conjuntos de datos, un conjunto de datos con un mayor número de variables que tienen un menor entre la imputación de la varianza $B$, siempre que los variables son de carácter informativo acerca de los valores que faltan.

Esto ocurre porque, en general, la falta de valores de una determinada variable se "rellena" con información de otras variables para generar plausible estimaciones de los valores que faltan (los detalles específicos de cómo estas estimaciones se generan variará dependiendo de la MI la aplicación que esté usando). Más información en la forma de suplemento las variables de resultado más estable de los valores imputados, resultando en una menor variación en la estadística de la cantidad de interés $q$ a través de cada una de las $m$ imputado conjuntos de datos.

Por lo tanto, en general, al aumentar el número de variables disponibles en un conjunto de datos aumentará la imputación de calidad, mientras más variables son de carácter informativo acerca de los valores que faltan.

Referencias

Rubin, D. B. (1996). Varios de imputación, después de 18+ años. Revista de la Asociación Americana de Estadística, 91, 473-489.

Schafer, J. L. (1999). Varios de imputación: Una capa de imprimación. Métodos estadísticos en la Investigación Médica, 8, 3-15.

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