Outly es una librería ligera para la detección rápida de valores atípicos (outliers) en Python. Utiliza dos métodos estadísticos sencillos: el Z-score y el rango intercuartílico (IQR). Su objetivo es ofrecer una solución minimalista para filtrar o reemplazar outliers en conjuntos de datos sin depender de herramientas de gran tamaño o complejidad.
Un outlier es un valor que se aleja significativamente de la tendencia general de los datos. Detectar y manejar outliers es fundamental en el análisis de datos, ya que pueden distorsionar la interpretación de los resultados.
Concepto:
Calcula cuántas desviaciones estándar se aleja un dato de la media.
Fórmula:
Z=(x−μ)σZ = \frac{(x - \mu)}{\sigma}Z=σ(x−μ)
Detección:
Se marca como outlier si el valor absoluto del Z-score es mayor que un umbral (por defecto, 3.0).
Clase: ZScoreDetector
Concepto:
Utiliza el rango intercuartílico, que es la diferencia entre el tercer cuartil (Q3) y el primer cuartil (Q1), para identificar valores que se salen de los límites naturales de la distribución.
Detección:
Un dato se considera outlier si es menor que Q1−k×IQRQ1 - k \times IQRQ1−k×IQR o mayor que Q3+k×IQRQ3 + k \times IQRQ3+k×IQR, donde kkk es un factor (por defecto, 1.5).
Clase: IQRDetector
Descripción:
Detecta outliers basados en Z-score.
Uso:
__init__(threshold=3.0)
: Inicializa con un umbral (por defecto, 3.0).fit(data)
: Calcula la media y la desviación estándar del conjunto de datos.predict(data)
: Retorna un array de booleanos indicando qué valores son outliers.fit_predict(data)
: Realiza ambas operaciones en un solo paso.Descripción:
Detecta outliers basados en el rango intercuartílico (IQR).
Uso:
__init__(k=1.5)
: Inicializa con un factor multiplicador kkk (por defecto, 1.5).fit(data)
: Calcula Q1, Q3 e IQR.predict(data)
: Retorna un array de booleanos indicando qué valores son outliers.fit_predict(data)
: Combina ajuste y predicción.Descripción:
Filtra y devuelve únicamente los valores que no son outliers, según una máscara booleana.