Z-Score para la Detección de Outliers

Escrito por

en

El Z-Score (Puntuación Z o Puntuación Estándar) es uno de los métodos estadísticos más utilizados para detectar valores atípicos (outliers) en variables numéricas. Su funcionamiento se basa en medir cuántas desviaciones estándar se encuentra una observación respecto a la media del conjunto de datos.

A diferencia del Método del Rango Intercuartílico (IQR), el Z-Score utiliza la media y la desviación estándar como referencia, por lo que resulta especialmente adecuado cuando los datos siguen una distribución aproximadamente normal. Gracias a su sencillez y sólido fundamento estadístico, es una técnica ampliamente utilizada tanto en análisis exploratorio como en procesos de preparación de datos y control de calidad.

Dentro de la fase de Data Preparation, el Z-Score permite identificar observaciones que presentan una desviación significativa respecto al comportamiento general de los datos y facilita la toma de decisiones sobre su tratamiento antes del entrenamiento de modelos de Machine Learning.

¿Qué es el Z-Score?

El Z-Score es una medida estadística que indica la distancia entre una observación y la media de una distribución, expresada en unidades de desviación estándar. Un valor de Z-Score responde a preguntas como:

  • ¿Qué tan lejos está un dato de la media?
  • ¿Es una observación habitual?
  • ¿Podría tratarse de un valor atípico?

Cuando el valor absoluto del Z-Score supera un determinado umbral, la observación puede considerarse un posible outlier.

Objetivos del Z-Score

El método persigue varios objetivos.

  • Detectar valores atípicos.
  • Medir la desviación respecto a la media.
  • Estandarizar variables numéricas.
  • Facilitar comparaciones entre variables con distintas escalas.
  • Mejorar la calidad del conjunto de datos.
  • Ayudar en la preparación para el modelado.

Preguntas que debe responder

Antes de aplicar el Z-Score conviene responder varias preguntas.

Sobre los datos

  • ¿La variable sigue una distribución aproximadamente normal?
  • ¿Existen valores muy alejados de la media?
  • ¿Qué porcentaje representan?

Sobre los valores detectados

  • ¿Corresponden a errores?
  • ¿Representan casos reales?
  • ¿Deben eliminarse?

Sobre el modelado

  • ¿El algoritmo utilizado es sensible a los valores extremos?
  • ¿Conviene aplicar otro método más robusto?
  • ¿Es necesario combinar varias técnicas?

Resultado esperado

Al finalizar el análisis mediante Z-Score debería disponerse de:

  • La media de la variable.
  • La desviación estándar.
  • El Z-Score de cada observación.
  • Los posibles valores atípicos detectados.
  • Un informe con las observaciones extremas.
  • Una estrategia documentada de tratamiento.

El objetivo del método es identificar observaciones anómalas, no eliminarlas automáticamente.

Flujo de trabajo

Una estrategia habitual consiste en seguir el siguiente flujo.

  1. Seleccionar la variable numérica.
  2. Calcular la media.
  3. Calcular la desviación estándar.
  4. Obtener el Z-Score de cada observación.
  5. Definir un umbral.
  6. Identificar los valores que superan dicho umbral.
  7. Analizar el origen de los outliers.
  8. Decidir el tratamiento adecuado.
  9. Validar el impacto sobre el conjunto de datos.

¿Cómo funciona?

El Z-Score mide la distancia entre un valor y la media utilizando la desviación estándar como unidad de medida.

Su fórmula es:

$$
z = \frac{x – \mu}{\sigma}
$$

Donde:

  • x es el valor observado.
  • μ es la media.
  • σ es la desviación estándar.

El resultado indica cuántas desviaciones estándar separan una observación de la media.

Por ejemplo:

  • Z = 0 → el valor coincide con la media.
  • Z = 1 → una desviación estándar por encima.
  • Z = -2 → dos desviaciones estándar por debajo.

Cuanto mayor sea el valor absoluto del Z-Score, más inusual será la observación.

Interpretación del Z-Score

El valor del Z-Score permite interpretar fácilmente la posición de una observación.

Z-ScoreInterpretación
0Coincide con la media
±1Valor habitual
±2Poco frecuente
±3 o superiorPosible outlier

En Ciencia de Datos suele utilizarse el criterio de |Z| > 3 como umbral para detectar valores atípicos. En algunos contextos más restrictivos también puede utilizarse: |Z| > 2.5

Ejemplo práctico

Consideremos la siguiente variable.

Edad
21
23
24
25
26
27
28
105

La mayoría de observaciones se concentra alrededor de la media. La edad de 105 años obtiene un Z-Score muy elevado y es detectada como posible outlier. Antes de eliminarla, deberá comprobarse si corresponde realmente a un error.

Elección del umbral

El umbral depende del nivel de sensibilidad deseado.

UmbralInterpretación
|Z| > 2Detección muy sensible
|Z| > 2.5Uso intermedio
|Z| > 3Criterio más utilizado
|Z| > 3.5Solo anomalías muy extremas

En la mayoría de proyectos de Machine Learning se utiliza 3.

Z-Score vs Método IQR

Ambos métodos son muy populares para detectar valores atípicos.

Z-ScoreMétodo IQR
Basado en media y desviación estándarBasado en cuartiles
Adecuado para distribuciones normalesAdecuado para distribuciones asimétricas
Sensible a los propios outliersRobusto frente a valores extremos
Fácil interpretación estadísticaMuy resistente a distribuciones sesgadas
Puede verse afectado por valores extremosPoco afectado por los propios outliers

Cuando los datos presentan fuerte asimetría suele preferirse el método IQR.

¿Cuándo utilizar el Z-Score?

Resulta especialmente recomendable cuando:

  • Las variables siguen una distribución aproximadamente normal.
  • Se trabaja con datos numéricos.
  • Se necesita comparar diferentes variables.
  • Se realiza análisis exploratorio.
  • Se preparan datos para algoritmos sensibles a outliers.
  • Se requiere una medida estadística fácilmente interpretable.

Ventajas y desventajas

VentajasDesventajas
Muy fácil de calcularSensible a los propios outliers
Fácil interpretaciónRequiere una distribución aproximadamente normal
Muy utilizado en estadísticaNo funciona bien con distribuciones muy sesgadas
Permite comparar escalas diferentesSolo analiza una variable cada vez
Amplio soporte en PythonNo detecta anomalías multivariantes

Limitaciones

Aunque resulta muy útil, presenta varias limitaciones.

  • Depende de la media y la desviación estándar.
  • Los propios outliers pueden modificar la media.
  • No funciona adecuadamente con distribuciones muy asimétricas.
  • Solo detecta anomalías univariantes.
  • No considera relaciones entre variables.
  • No sustituye a métodos multivariantes como Isolation Forest o LOF.

En estos casos suele recurrirse al Modified Z-Score, que utiliza la mediana y la desviación absoluta mediana (MAD), siendo mucho más robusto frente a valores extremos.

Implementación en Python

Python ofrece varias formas de calcular el Z-Score.

Utilizando SciPy

from scipy.stats import zscore

df["zscore"] = zscore(df["salario"])

Detectar outliers

outliers = df[
    abs(df["zscore"]) > 3
]

Contar el número de outliers

print(len(outliers))

Calcular manualmente el Z-Score

media = df["salario"].mean()

desviacion = df["salario"].std()

df["zscore"] = (
    df["salario"] - media
) / desviacion

Eliminar valores atípicos

df_limpio = df[
    abs(df["zscore"]) <= 3
]

Visualizar la distribución

import matplotlib.pyplot as plt

plt.hist(df["zscore"], bins=30)
plt.xlabel("Z-Score")
plt.ylabel("Frecuencia")
plt.show()

Estos ejemplos muestran la implementación básica del método. En proyectos reales suele combinarse con técnicas gráficas y con otros métodos de detección para obtener resultados más robustos.

Buenas prácticas

Para utilizar correctamente el Z-Score se recomienda:

  • Verificar previamente si la distribución es aproximadamente normal.
  • Analizar siempre el origen de los valores detectados antes de eliminarlos.
  • Utilizar el valor absoluto del Z-Score para detectar tanto valores extremos positivos como negativos.
  • Complementar el análisis con histogramas, diagramas de caja y estadísticas descriptivas.
  • Comparar los resultados con métodos más robustos, como IQR o Modified Z-Score, cuando existan distribuciones asimétricas.
  • Documentar los criterios utilizados para identificar y tratar los outliers.
  • Evaluar el impacto del tratamiento sobre el rendimiento del modelo.
  • Mantener una copia del conjunto de datos original para garantizar la trazabilidad del proceso.