Antes de modelar, vale la pena mirar qué tan "raros" son los valores extremos de una variable. Un método simple y robusto (no asume normalidad) es el rango intercuartílico.
El método
Con y como el primer y tercer cuartil, el rango intercuartílico es:
Un valor se considera atípico si cae fuera de:
Implementación
python
def find_outliers_iqr(series):
q1, q3 = series.quantile(0.25), series.quantile(0.75)
iqr = q3 - q1
lower, upper = q1 - 1.5 * iqr, q3 + 1.5 * iqr
return series[(series < lower) | (series > upper)]
Cuándo no usarlo
El 1.5 es una convención, no una ley física. En distribuciones muy asimétricas (ingresos, tiempos de espera) conviene revisar visualmente con un boxplot antes de descartar datos automáticamente — un outlier real puede ser el hallazgo más importante del análisis.