Python

Análisis de outliers en Seaborn: Cómo identificar y visualizar valores atípicos

Los valores atípicos u outliers de un conjunto de datos son aquellos registros que se alejan de forma significativa de los demás puntos. Identificar estos valores es crucial para un correcto análisis de datos. No conocer ni comprender los outliers de un conjunto de datos puede llevar a conclusiones erróneas durante los análisis de datos, ya que su presencia afecta a los resultados. Seaborn dispone de herramientas para identificar visualmente los outliers de manera efectiva. En esta entrada se verá cómo usar los gráficos de cajas para identificar outliers en Seaborn.

Importación de un conjunto de datos

En esta entrada se usará el popular conjunto de datos iris que se incluye entre los que incluyen Seaborn. Por lo que solamente se tiene que importar Seaborn y llamar a la función load_dataset() con el nombre del conjunto para tener los valores en un DataFrame de Pandas.

import seaborn as sns
import pandas as pd

# Cargar datos de iris
iris = sns.load_dataset("iris")

Identificación de outliers en Searbon

Los gráficos de cajas de Searbon muestran por defecto los valores atípicos del conjunto de datos como puntos. Considerando como outliers todos aquellos valores que se alejan 1,5 veces del rango intercuartil (IRQ)del conjunto de datos. Esto se puede comprobar para el conjunto de datos iris calculando el IRQ y viendo que estos puntos son los que aparecen en la gráfica.

import matplotlib.pyplot as plt

# Calcular el rango intercuartil (IQR)
Q1 = iris['sepal_width'].quantile(0.25)
Q3 = iris['sepal_width'].quantile(0.75)
IQR = Q3 - Q1

# Definir los límites de los outliers
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# Identificar y resaltar los outliers en un gráfico de caja
sns.boxplot(x=iris['sepal_width'])
sns.scatterplot(x=iris[iris['sepal_width'] < lower_bound]['sepal_width'],
                y=0, s=150, facecolor='w', edgecolor='r', linewidth=1.5, label='Outliers')
sns.scatterplot(x=iris[iris['sepal_width'] > upper_bound]['sepal_width'],
                y=0, s=150, facecolor='w', edgecolor='r', linewidth=1.5)
plt.legend()

# Mostrar el gráfico
plt.show()
Identificación de outliers mediante los gráficos de caja de Seaborn

Un ejemplo en el que, en primer lugar, se calcula el IRQ mediante la diferencia entre los cuantiles 0,25 (Q1) y 0,75 (Q3) del conjunto de datos. Para identificar los outliers se define un límite inferior como el primer cuantíl menos 1,5 veces el IRQ, para el límite superior se usa el segundo valor más 1,5 el IRQ. Una vez definido los límites se crea una gráfica de cajas y, sobre ella, se dibuja un círculo rojo sobre los valores atípicos. Como se puede ver en la gráfica, los puntos negros son justamente los outliers.

# Identificar los outliers en un gráfico de caja por especie
sns.boxplot(x="species", y="sepal_width", data=iris)

# Mostrar el gráfico
plt.show()
Los outliers en función de la especie para el ancho del pétalo

La identificación de outliers en Seaborn también dentro del conjunto de datos iris también se puede hacer por especie.

Conclusiones

El análisis de outliers es esencial para identificar y comprender los valores atípicos dentro de los conjuntos de datos. Las gráficas de caja de Seaborn son una herramienta que permite identificar de forma visual si existen estos valores y donde están.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Seaborn

Recent Posts

Subplots en Matplotlib: cómo organizar múltiples gráficos en una sola figura

Llevas un rato analizando datos y tienes cuatro gráficos abiertos en ventanas separadas: ventas, usuarios,…

10 horas ago

Síndrome del objeto brillante en ciencia de datos: el error simétrico a los costes hundidos

Hace poco publiqué una entrada en la que trataba de un sesgo bien documentado: aferrarse…

5 días ago

De la Regresión Logística al Scorecard: La Transformación Matemática

En un entrada previa explicamos qué son el WOE y el IV y por qué…

1 semana ago

Analytics Lane lanza la versión 1.1 del laboratorio con nuevas suites de CLV y Scoring

Seguimos evolucionando el laboratorio de Analytics Lane y hoy lanzamos la versión 1.1, disponible en:…

1 semana ago

Interés compuesto: la fuerza que multiplica tu dinero (y los errores que la anulan)

“El interés compuesto es la octava maravilla del mundo. El que lo entiende lo gana…

2 semanas ago

Cómo comparar datos con barras en Matplotlib: agrupadas, apiladas y porcentuales

Tienes los datos de ventas de tres productos en dos años distintos y quieres saber…

2 semanas ago

This website uses cookies.