Los atípicos aumentan la desviación con la que el z-score intenta detectarlos
¿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
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
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.
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.