4 votos

Eliminación de outliers de un conjunto de datos

EDIT: Fondo: necesito (lin) a escala de un gran conjunto de datos para el correo.g [0,10]. Los valores atípicos (en el ejemplo a continuación 1 y 10000 de conseguir (no lin) asignada a resp 0 y 10, el resto (50,51 en este caso) se escala por encima de 0 a 10 El objetivo es atrapar tanto como los números en este rango. Si no me protejo contra muy grande/pequeña valores atípicos todos los demás valores se asignan a una muy pequeña gama si eso sucede.

Asumir que tengo un gran conjunto de datos (millones de números), y quiero que el más pequeño de la gama, sin valores atípicos.

Así por ejemplo, la que yo tengo:

$$x=[1,1,50,50,50,50,50,50,50,50,51,51,51,51,10000,10000]$$

Estoy buscando "la más pequeña de la gama, que incluyen el número máximo de números", así que estoy buscando un algoritmo que encuentra $50$ (límite inferior) y $51$ (límite superior) en este caso.

Mi pregunta:

  • ¿Cuál es la estadística de término o nombre de este tipo de preguntas?
  • ¿Cómo puedo solucionar esto?
  • (Para los académicos) los documentos y/o investigadores que escribieron acerca de las diferentes posibilidades acerca de la solución de este.

Mis ideas:

Así que mi idea inicial era: rango = [media/media $\pm$ $1$ o $2$ desviaciones estándar)

$$\matriz{\text{media}(x) &=& 1287\\ \text{std}(x) &=& 3292\\ \text{media}(x) - \text{std}(x) &=& -2005}$$

Así que no es una solución, por lo que el segundo pensamiento:

$$\text{median}(x) - \text{std}(x) = -3242$$

Así que también no ayuda.

2voto

Zatatata Puntos 71

No hay una solución universal al problema y realmente no puede ser sin conocimientos específicos de la población. El valor es ridículo para la población, dejan de hacerlo. Pero usted debería haber hecho esto antes de que se trató de analizar con él (fácil para mí decir).

Usted puede considerar la posibilidad de Grubbs de' Prueba y sus variantes.

LOCO siempre suena bien, pero siempre que lo he utilizado, se realiza mal, en el mejor.

En un análisis particular, el apalancamiento y análisis de diversos dejar de salida de los algoritmos de evaluar el impacto de los punto...¿que realmente tienen un impacto en el análisis.

No paramétrica (de distribución gratuita) el análisis es una mejor idea.

En muchos casos, un registro de transformación hará que los valores atípicos ir puf.

En muchos casos, la eliminación de un valor atípico va a exponer a otra...y así sucesivamente...hasta que es difícil argumentar que no son la poda de sus datos como un topiario -- "Lo que es un magnífico elefante!".

0voto

TG01 Puntos 18

Usted puede dividir los datos en la igualdad de los contenedores para encontrar el tamaño del bote (y offset), que produce un adecuado máxima bin contar. Aquí está un ejemplo con los siguientes datos.

a = {463, 463, 512, 512, 512, 512, 512, 512, 512,
     512, 513, 513, 513, 513, 10462, 10462, 880, 880,
     929, 929, 929, 929, 929, 929, 929, 929, 930, 930,
     930, 930, 10879, 10879, 181, 181, 230, 230, 230, 
     230, 230, 230, 230, 230, 231, 231, 231, 231, 10180,
     10180, 416, 416, 465, 465, 465, 465, 465, 465, 465,
     465, 466, 466, 466, 466, 10415, 10415};

maxA = 10879;

El aumento de la papelera de contar de 1 a 100 (compensación de la papelera de iniciar la captura de todas las variaciones) produce la siguiente parcela de máxima bin contar. Por ejemplo, un recipiente ancho de 4 con un desplazamiento de 3 captura de un máximo de bin recuento de 14, y un cubo ancho de 51 con un desplazamiento de 4 captura de un máximo de bin recuento de 26.

La selección de a donde (4 + 51 * 9) <= a < (4 + 51 * 10) encuentra 26 artículos. El resto son valores atípicos. Cómo estrecho desea que los contenedores es una opción subjetiva.

enter image description here

enter image description here

Código de Mathematica para el de arriba

largestBinWidth = 100;

counts = Table[
   Table[
    {binsize, offset, 
     Max[BinCounts[a, {offset, maxA + offset, binsize}]]},
    {offset, -binsize, binsize}],
   {binsize, 1, largestBinWidth}];

maxcounts = Last[SortBy[#, Last]] & /@ counts;

ListLinePlot[maxcounts[[All, {1, 3}]],
 PlotRange -> All, AxesOrigin -> {0, 0},
 AxesLabel -> {"Bin width", "Max bincount"}]

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