31 votos

Un enfoque estadístico para determinar si los datos faltan al azar

Tengo un gran conjunto de vectores de características que usaré para atacar un problema de clasificación binaria (usando scikit learn en Python). Antes de empezar a pensar en la imputación, me interesa tratar de determinar, a partir de las partes restantes de los datos, si los datos que faltan son "perdidos al azar" o perdidos no al azar.

¿Cuál es una forma sensata de abordar esta cuestión?


Resulta que una pregunta mejor es preguntar si los datos "faltan completamente al azar" o no. ¿Cuál es una forma sensata de hacerlo?

21voto

Björn Puntos 457

Esto no es posible, a menos que haya conseguido recuperar los datos que faltan. No se puede determinar a partir de los datos observados si los datos que faltan son aleatorios (MAR) o no aleatorios (MNAR). Sólo se puede saber si los datos son claramente no faltantes al azar (MCAR). Más allá de eso, sólo se puede apelar a la plausibilidad de MCAR o MAR en contraposición a MNAR basándose en lo que se sabe (por ejemplo, las razones comunicadas de por qué faltan datos). Otra posibilidad es argumentar que no importa demasiado, ya que la proporción de datos que faltan es pequeña y, en el caso de MNAR, tendrían que darse situaciones muy extremas para que los resultados fueran anulados (véase el "análisis del punto de inflexión").

13voto

Harry Wood Puntos 121

He encontrado la información a la que me refería en mi comentario.

Desde Libro de van Buurens En la página 31, escribe

"Se han propuesto varias pruebas para comprobar el MCAR frente al MAR. Estas pruebas no se utilizan ampliamente, y su valor práctico no está claro. Véase Enders (2010, pp. 17-21) para una evaluación de dos procedimientos. No es posible probar MAR frente a MNAR ya que falta la información que se necesita para tal prueba".

4voto

Joel Hooks Puntos 4673

Un método que utilizo es una matriz de sombra, en la que el conjunto de datos consiste en variables indicadoras en las que se da un 1 si un valor está presente, y un 0 si no lo está. Correlacionarlas entre sí y con los datos originales puede ayudar a determinar si las variables tienden a faltar juntas (MAR) o no (MCAR). Utilizando R para un ejemplo (tomado del libro "R in action" de Robert Kabacoff):

#Load dataset
data(sleep, package = "VIM")

x <- as.data.frame(abs(is.na(sleep)))

#Elements of x are 1 if a value in the sleep data is missing and 0 if non-missing.
head(sleep)
head(x)

#Extracting variables that have some missing values.
y <- x[which(sapply(x, sd) > 0)]
cor(y)

#We see that variables Dream and NonD tend to be missing together. To a lesser extent, this is also true with Sleep and NonD, as well as Sleep and Dream.

#Now, looking at the relationship between the presence of missing values in each variable and the observed values in other variables:
cor(sleep, y, use="pairwise.complete.obs")

#NonD is more likely to be missing as Exp, BodyWgt, and Gest increases, suggesting that the missingness for NonD is likely MAR rather than MCAR.

4voto

ssn Puntos 472

Esto parece bastante factible desde el punto de vista de la clasificación.

Quiere clasificar los datos que faltan frente a los que no faltan utilizando todas las demás características. Si obtiene resultados significativamente mejores que los aleatorios, entonces sus datos no están perdidos al azar.

2voto

Erin Drummond Puntos 154

Se quiere saber si hay alguna correlación entre un valor que se pierde en la característica y el valor de cualquier otra de las características.

Para cada uno de los rasgos, cree un nuevo rasgo que indique si el valor falta o no (llamémoslo rasgo "is_missing"). Calcule su medida de correlación favorita (sugiero utilizar aquí la información mutua) de las características is_missing y el resto de las características.

Tenga en cuenta que si no encuentra ninguna correlación entre dos características, todavía es posible que haya una correlación debido a un grupo de características (un valor que falta en función del XOR de otras diez características).

Si tiene un gran conjunto de características y un gran número de valores, obtendrá falsas correlaciones debido a la aleatoriedad. Aparte de las formas habituales de hacer frente a esto (conjunto de validación, umbral suficientemente alto), puede comprobar si las correlaciones son simétricas y transitivas. Si lo son, es probable que sean verdaderas y debería comprobarlas más a fondo.

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