Detectar outliers es un paso crucial en el análisis de datos. Estos valores extremos pueden influir significativamente en los resultados, por lo que es importante identificarlos correctamente. A continuación, exploramos los métodos más comunes para detectar outliers, cuándo aplicarlos y cómo implementarlos.
1. Método del Rango Intercuartílico (IQR)
El método del Rango Intercuartílico (IQR) identifica outliers al analizar la dispersión de los datos entre el primer cuartil (Q1Q1) y el tercer cuartil (Q3Q3). Se consideran outliers los datos que estén fuera del rango:
Q1−1.5×IQRyQ3+1.5×IQRQ1 – 1.5 \times IQR \quad \text{y} \quad Q3 + 1.5 \times IQR
Donde IQRIQR se calcula como:
IQR=Q3−Q1IQR = Q3 – Q1
Cuándo usarlo
- Ideal para distribuciones no normales o cuando no se asume una forma específica de los datos.
Ejemplo
Supongamos un conjunto de datos: [10, 12, 14, 15, 16, 18, 21, 40]
.
- Calculamos Q1=13.5Q1 = 13.5, Q3=19.5Q3 = 19.5 y IQR=Q3−Q1=6IQR = Q3 – Q1 = 6.
- Los límites serían:
- Límite inferior: Q1−1.5×IQR=4.5Q1 – 1.5 \times IQR = 4.5
- Límite superior: Q3+1.5×IQR=28.5Q3 + 1.5 \times IQR = 28.5
- Como 40>28.540 > 28.5, es un outlier.
2. Método del Z-Score
El Z-Score mide cuántas desviaciones estándar se encuentra un dato con respecto a la media. La fórmula es:
Donde:
- XX: valor de la observación.
- μ\mu: media de los datos.
- σ\sigma: desviación estándar.
Un dato es un outlier si ∣Z∣>3|Z| > 3.
Cuándo usarlo
- Útil cuando los datos tienen una distribución normal o simétrica.
Ejemplo
Conjunto de datos: [10, 12, 14, 15, 16, 18, 21, 40]
.
- Calculamos:
- μ=18.25\mu = 18.25
- σ≈9.05\sigma \approx 9.05
- Para el valor 4040:
- Z=40−18.259.05≈2.4Z = \frac{40 – 18.25}{9.05} \approx 2.4
- Como Z<3Z < 3, no es un outlier extremo.
3. Método Basado en Percentiles
Este método define outliers como los valores fuera de un rango de percentiles específicos, por ejemplo, el 1% y el 99%. Los límites son:
P1yP99P1 \quad \text{y} \quad P99
Cuándo usarlo
- Es apropiado para distribuciones muy sesgadas o grandes conjuntos de datos.
Ejemplo
Conjunto de datos: [10, 12, 14, 15, 16, 18, 21, 40]
.
- Calculamos:
- Percentil 1 (P1P1): 10.710.7
- Percentil 99 (P99P99): 39.739.7
- Detectamos que 40>P9940 > P99, por lo tanto, es un outlier.
4. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
Este método agrupa puntos según su densidad y considera outliers a los puntos que no pertenecen a un grupo denso.
Cuándo usarlo
$
latex i\hbar\frac{\partial}{\partial t}\left|\Psi(t)\right>=H\left|\Psi(t)\right>$

- Ideal para datos espaciales o con patrones de clustering.
Implementación
Un ejemplo en Python para detectar outliers:
from sklearn.cluster import DBSCAN
import numpy as np
data = np.array([[1], [2], [2.1], [8], [8.1], [25]])
db = DBSCAN(eps=2, min_samples=2).fit(data)
labels = db.labels_ # -1 indica un outlier
5. Boxplots
Un Boxplot utiliza el método del IQR de forma visual para destacar outliers. Los valores fuera de las “bigotes” son identificados como extremos.
Cuándo usarlo
- Herramienta rápida y visual para explorar datos univariados.
Ejemplo
Un ejemplo en Python para graficar un boxplot:
import matplotlib.pyplot as plt
data = [10, 12, 14, 15, 16, 18, 21, 40]
plt.boxplot(data)
plt.show()
6. Regresión y Residuos
En problemas de regresión, los outliers pueden identificarse analizando los residuos (diferencia entre los valores reales y los predichos). Un outlier es aquel con un residuo grande:
Residuo=yreal−ypredicho\text{Residuo} = y_{\text{real}} – y_{\text{predicho}}
Cuándo usarlo
- Específico para análisis predictivos.
Ejemplo
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1.1, 2.1, 3.0, 4.2, 15.0]) # 15 es un outlier
model = LinearRegression().fit(X, y)
residuals = y - model.predict(X)
print("Outliers:", np.where(abs(residuals) > 2))
Estos métodos pueden combinarse según la naturaleza y distribución de los datos. Elegir el enfoque adecuado depende del contexto y del tipo de análisis que deseas realizar.
Espero que este post sea útil para tus lectores. Si necesitas más ejemplos o detalles, ¡puedes incluirlos fácilmente! 😊
Deja un comentario