← 8 · Atípicos y anomalías E2

Los atípicos aumentan la desviación con la que el z-score intenta detectarlos

La pregunta de esta página

¿Por qué esta web marca los atípicos con cuartiles en lugar de con el z-score?

1 El problema

La página 8 marca las ventas raras con el límite de Tukey, que sale de los cuartiles. El método más conocido es otro: el z-score, que cuenta cuántas desviaciones se aleja cada valor de la media.

Con estas ventas, la media es 2.443,41 € y la desviación 3.701,73 €. Con esas dos cifras parece fácil decidir qué venta es rara.

2 Por qué engaña

El z-score se calcula con la media y la desviación, y las dos dependen de los propios atípicos. Una venta muy grande sube la media y aumenta la desviación, de modo que el umbral para considerarla rara también sube. Cuantos más atípicos hay, más difícil resulta detectarlos.

Los cuartiles no tienen ese problema. El primero y el tercero no cambian con lo que ocurre en los extremos, porque solo dependen de dónde caen el 25 % y el 75 % de los datos.

3 El principio

Usar medidas que los valores extremos no alteren
Un estadístico es robusto cuando unos pocos valores extremos no lo alteran. La mediana y los cuartiles lo son. La media y la desviación no.

4 La solución

Usar el límite de Tukey (el tercer cuartil más una vez y media el rango intercuartílico) y dejar el z-score para las variables que se reparten por igual a los dos lados de la media. Comparando los dos sobre las mismas 20.000 ventas se ve la diferencia.

5 Qué pasa con estos datos

z-score, umbral 3
760 marcadas
caza 15 de las 16 reales
Tukey, límite 6.285 €
1.588 marcadas
caza 16 de las 16 reales

Tukey encuentra las 16 anomalías reales del catálogo. El z-score con umbral 3 no detecta una: la venta de 44 unidades de Switch Gestionable 24p a su precio de catálogo. Aquí no se le escapa por culpa de las otras anomalías, porque sin ellas tampoco llegaría al umbral. Se le escapa porque su importe, imposible para ese producto, es normal al lado de las ventas de servidores, y un z-score calculado sobre todas las ventas no sabe de qué producto es cada una.

Tukey tampoco es gratis: además de las 16 marca 1.572 ventas que no tienen nada raro. Ninguno de los dos sirve sin separar por producto.

Otro problema del z-score con estos datos
Los umbrales 2,5 y 3 marcan exactamente las mismas 760 ventas. El importe solo toma unos pocos valores, porque son ocho productos por cantidades enteras, así que entre un umbral y el siguiente no cae ninguna venta. Ajustar el umbral entre esos dos valores no cambia el resultado.

La venta mayor está a 33,2 desviaciones de la media. Con unas pocas ventas tan alejadas del resto, el criterio de las tres desviaciones pierde su sentido.

6 Para qué sirve

Para elegir el detector antes de configurarlo. Si la variable tiene cola larga, es decir, unos pocos valores mucho más grandes que el resto, el z-score se va a quedar corto. El importe de estas ventas la tiene.

El mismo razonamiento vale para la media frente a la mediana y para el escalador robusto frente al estándar. En los tres casos se prefiere la medida que los valores extremos no alteran.

El detalle técnico

Sobre las 20.000 ventas del fichero limpio, anomalías incluidas, porque el objetivo es ver si el detector las encuentra. Las 16 reales están etiquetadas en el propio dataset con su motivo, así que aquí hay respuesta verdadera con la que comparar.

Ver los dos criterios
# z-score: cuantas desviaciones se separa cada venta de la media
z = (x - x.mean()) / x.std()      # media y desviacion las calcula el PROPIO dato

# Tukey por IQR: cuartiles, que no se mueven con los extremos
q1, q3 = percentile(x, [25, 75])
limite = q3 + 1.5 * (q3 - q1)

Fuente: atipicos_kpi.json, campo e2_zscore.