Supprimer ou traiter les valeurs aberrantes détectées

 

Introduction

L’IQR (Interquartile Range) est une méthode robuste pour détecter les valeurs aberrantes, en particulier dans des données numériques continues. Une fois identifiées grâce à l’IQR, il est essentiel de prendre une décision : faut-il les supprimer, les corriger, les transformer, ou les garder telles quelles ? Cette page présente les approches les plus courantes et leurs implications.

 

Rappel : Comment détecter les outliers avec l’IQR

On considère une valeur comme aberrante si elle est en dehors de l’intervalle :

borne_inf = Q1 - 1.5 × IQR
borne_sup = Q3 + 1.5 × IQR

Ce seuil est statistiquement fiable et largement utilisé pour repérer les points trop éloignés de la majorité des données.

 

Supprimer les valeurs aberrantes détectées avec l’IQR

 

Quand supprimer ?

 

Exemple avec Pandas :

import pandas as pd

# Calcul de l'IQR
q1 = df["valeur"].quantile(0.25)
q3 = df["valeur"].quantile(0.75)
iqr = q3 - q1

borne_inf = q1 - 1.5 * iqr
borne_sup = q3 + 1.5 * iqr

# Filtrage des données
df_filtré = df[(df["valeur"] >= borne_inf) & (df["valeur"] <= borne_sup)]

 

Remplacer les valeurs aberrantes détectées

Lorsque les données sont rares ou que la suppression risquerait d’appauvrir la représentativité de l’échantillon, il est souvent préférable de corriger les outliers. Plusieurs méthodes existent selon le type de données et les objectifs analytiques.

 

Méthode : Remplacer par la médiane

La médiane est une mesure robuste qui n’est pas influencée par les valeurs extrêmes. Elle est idéale pour remplacer les outliers sans déformer la distribution globale des données.

mediane = df["valeur"].median()

df["valeur_corrigée"] = df["valeur"].apply(
    lambda x: mediane if (x < borne_inf or x > borne_sup) else x
)

 

Méthode : Remplacer par la borne la plus proche

Une approche alternative consiste à ramener les valeurs extrêmes à la limite IQR la plus proche (borne_inf ou borne_sup). Cela permet de conserver une trace de ces données sans laisser leur influence se propager.

def cap_value(x):
    if x < borne_inf:
        return borne_inf
    elif x > borne_sup:
        return borne_sup
    else:
        return x

df["valeur_corrigée"] = df["valeur"].apply(cap_value)

 

Méthode : Remplacer par une prédiction (régression ou interpolation)

Si la variable concernée est corrélée à d’autres variables du dataset, on peut entraîner un modèle (ex. régression linéaire) pour prédire une valeur plausible et remplacer les outliers par cette estimation.

Cette méthode est plus avancée mais très utile dans des contextes sensibles (finance, médecine) où chaque valeur a un impact important.

# Exemple : utilisation d'une régression linéaire pour prédire la variable
from sklearn.linear_model import LinearRegression

# Suppose qu'on utilise 'feature1' pour prédire 'valeur'
model = LinearRegression()
X = df[["feature1"]]
y = df["valeur"]

# Entraînement sur les données sans outliers
mask = (df["valeur"] >= borne_inf) & (df["valeur"] <= borne_sup)
model.fit(X[mask], y[mask])

# Prédiction pour tous les points
df["valeur_predite"] = model.predict(X)

# Remplacement des outliers par la valeur prédite
df["valeur_corrigée"] = df.apply(
    lambda row: row["valeur_predite"] if (row["valeur"] < borne_inf or row["valeur"] > borne_sup) else row["valeur"],
    axis=1
)

 

Appliquer un capping (tronquer les extrêmes)

Le capping est une méthode simple pour limiter l’influence des valeurs extrêmes tout en les conservant dans le jeu de données. Elle consiste à plafonner les données à l’intérieur des bornes IQR.

df["valeur_cap"] = df["valeur"].clip(lower=borne_inf, upper=borne_sup)

Cette méthode est particulièrement utile lorsque l’on souhaite éviter la perte d’informations mais atténuer les distorsions causées par des extrêmes rares.

 

Utiliser une transformation mathématique

Certaines transformations permettent de réduire l’impact visuel et statistique des outliers sans modifier la structure des données.

 

Bonnes pratiques

 

Conclusion

Traiter les valeurs aberrantes est une étape incontournable en data science. La méthode IQR permet de les identifier de manière simple et robuste. Une fois détectées, plusieurs stratégies sont possibles : suppression, remplacement, capping ou transformation.

Le choix de la méthode dépend du volume de données, du domaine d’application, et des objectifs de l’analyse. Un bon data scientist choisit toujours avec discernement et en lien avec les besoins métier.