23 votos

Detección de valores atípicos en datos de recuento

Tengo lo que ingenuamente pensé que era un problema bastante sencillo que implica la detección de valores atípicos para muchos conjuntos diferentes de datos de conteo. En concreto, quiero determinar si uno o más valores de una serie de datos de recuento son más altos o más bajos de lo esperado en relación con el resto de los recuentos de la distribución.

El factor de confusión es que tengo que hacer esto para 3.500 distribuciones y es probable que algunas de ellas se ajusten a una poisson sobredispersa inflada a cero, mientras que otras pueden ajustarse mejor a una binomial negativa o ZINB, mientras que otras pueden tener una distribución normal. Por esta razón, las puntuaciones Z simples o el trazado de la distribución no son apropiados para gran parte del conjunto de datos. He aquí un ejemplo de los datos de recuento para los que quiero detectar valores atípicos.

counts1=[1 1 1 0 2 1 1 0 0 1 1 1 1 1 0 0 0 0 1 2 1 1 2 1 1 1 1 0 0 1 0 1 1 1 1 0 
         0 0 0 0 1 2 1 1 1 1 1 1 0 1 1 2 0 0 0 1 0 1 2 1 1 0 2 1 1 1 0 0 1 0 0 0 
         2 0 1 1 0 2 1 0 1 1 0 0 2 1 0 1 1 1 1 2 0 3]
counts2=[0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
         0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 
         1 1 0 0 0]
counts3=[14 13 14 14 14 14 13 14 14 14 14 14 15 14 14 14 14 14 14 15 14 13 14 14 
         15 12 13 17 13 14 14 14 14 15 14 14 13 14 13 14 14 14 14 13 14 14 14 15 
         15 14 14 14 14 14 15 14 1414 14 15 14 14 14 14 14 14 14 14 14 14 14 14 13 16]
counts4=[0 3 1.......]
and so on up to counts3500.

Inicialmente pensé que tendría que escribir un bucle en Python o R que aplicara un conjunto de modelos a cada distribución y seleccionara el modelo que mejor se ajustara según el AIC u otro (¿tal vez el fitdistrplus en R?). A continuación, podría preguntar cuáles son los extremos de la distribución dada (los recuentos que caen en las colas, por ejemplo, ¿un recuento de "4" sería un valor atípico en la distribución counts1 anterior?) Sin embargo, no estoy seguro de que ésta sea una estrategia válida, y se me ocurre que puede haber una metodología sencilla para determinar los valores atípicos en los datos de recuento que yo desconozco. He buscado mucho y no he encontrado nada que parezca apropiado para mi problema dado el número de distribuciones que quiero mirar.

Mi objetivo final es detectar aumentos o disminuciones significativos de un recuento para cada distribución de recuentos, utilizando la metodología más adecuada desde el punto de vista estadístico.

27voto

Patrick Puntos 183

No se puede utilizar la distancia de una observación con respecto a un ajuste clásico de los datos para detectar de forma fiable los valores atípicos, ya que el procedimiento de ajuste que se utiliza puede acercarse a los valores atípicos (lo que se denomina efecto de enmascaramiento). Una forma sencilla de detectar los valores atípicos de forma fiable es utilizar la idea general que has sugerido (distancia del ajuste) pero sustituyendo los estimadores clásicos por otros robustos mucho menos susceptibles de ser influenciados por los valores atípicos. A continuación presento una ilustración general de la idea y luego discuto la solución para su problema específico.

Un ejemplo: considere las siguientes 20 observaciones extraídas de un $\mathcal{N}(0,1)$ (redondeado al segundo dígito):

x<-c(-2.21,-1.84,-.95,-.91,-.36,-.19,-.11,-.1,.18,
.3,.31,.43,.51,.64,.67,.72,1.22,1.35,8.1,17.6)

(los dos últimos deberían ser realmente 0,81 y 1,76, pero se han se han escrito mal accidentalmente).

Utilizando una regla de detección de valores atípicos basada en la comparación de la estadística

$$\frac{|x_i-\text{ave}(x_i)|}{\text{sd}(x_i)}$$

a los cuantiles de una distribución normal nunca te llevaría a sospechar que 8,1 es un valor atípico, lo que te llevaría a estimar el $\text{sd}$ de la serie "recortada" sea 2 (para comparar la estimación bruta, es decir, sin recortar, de $\text{sd}$ es de 4,35).

Si hubieras utilizado una estadística robusta en su lugar:

$$\frac{|x_i-\text{med}(x_i)|}{\text{mad}(x_i)}$$

y comparando el robusto resultante $z$ -a los cuantiles de una cuantiles de una normal, habrías marcado correctamente las dos últimas observaciones como valores atípicos (y estimar correctamente estimar el $\text{sd}$ de la serie recortada sea 0.96).

(en aras de la exhaustividad debo señalar que algunas personas, incluso en esta época y día, prefieren se aferra a la estimación bruta -sin recortar- estimación de 4,35 en lugar de utilizar la estimación más precisa basada en el recorte, pero esto es ininteligible para mí)

Para otras distribuciones la situación no es tan diferente, simplemente que tendrás que pre-transformar tus datos primero. Por ejemplo, en su caso:

Supongamos que $X$ son los datos originales del recuento. Un truco es utilizar la transformación:

$$Y=2\sqrt{X}$$

y para excluir una observación como atípica si $Y>\text{med}(Y)+3$ (esta regla es no simétrico y yo por mi parte sería muy advierte sobre la exclusión de observaciones de la "cola" izquierda de una variable de recuento según un umbral basado en los datos. Las observaciones negativas, obviamente, deberían ser bastante seguras de eliminar)

Esto se basa en la idea de que si $X$ es poisson, entonces

$$Y\approx \mathcal{N}(\text{med}(Y),1)$$

Esta aproximación funciona razonablemente bien para los datos distribuidos por Poisson cuando se trata de datos con distribución de poisson $\lambda$ (el parámetro de la poisson) es mayor que 3.

Cuando $\lambda$ es inferior a 3 (o cuando el modelo que rige la distribución de la mayoría de los datos tiene una moda más cercana a 0 que una poisson $\lambda=3$ como en los v.r. ZINB) la aproximación tiende a errar por el lado el lado conservador (rechazar menos datos como valores atípicos).

Para ver por qué esto se considera "conservador" considere que en el límite (cuando los datos son binomiales con muy pequeño $p$ ) ninguna observación sería marcada como atípica por esta regla y este es precisamente el comportamiento que queremos: para causar el enmascaramiento, los valores atípicos tienen que ser capaces de impulsar la parámetros estimados se alejen arbitrariamente de sus verdaderos valores verdaderos. Cuando los datos se extraen de una distribución con soporte acotado (como la binomial), esto simplemente no puede no puede ocurrir...

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