Supprimer ou traiter les valeurs aberrantes détectées

 

Introduction

Une fois les valeurs aberrantes détectées à l’aide du Z-score (par exemple, avec un seuil de |Z| > 3), il est important de décider de leur sort. Faut-il les supprimer ? Les corriger ? Les conserver avec des ajustements ? Cette étape dépend fortement du contexte métier, de la taille de l’échantillon et de la nature de l’analyse à mener.

 

Supprimer les valeurs aberrantes

La suppression est la méthode la plus directe. Elle est adaptée lorsque :

Exemple en Python :

import pandas as pd
from scipy.stats import zscore

df = pd.DataFrame({"valeurs": [10, 12, 14, 13, 11, 100]})
df["zscore"] = zscore(df["valeurs"])

# Supprimer les valeurs dont le Z-score est supérieur à 3 en valeur absolue
df_filtré = df[df["zscore"].abs() <= 3]

print(df_filtré)

 

Remplacer les valeurs aberrantes

Plutôt que de supprimer les outliers, on peut choisir de les remplacer par une valeur plus représentative. Cela permet de conserver la taille du jeu de données tout en réduisant l’impact des extrêmes.

 

Méthode : remplacer par la médiane

La médiane est robuste aux extrêmes et constitue une bonne alternative. Cette approche est utile si vous voulez garder un nombre d’observations constant sans fausser la distribution centrale.

mediane = df["valeurs"].median()
df.loc[df["zscore"].abs() > 3, "valeurs"] = mediane

 

Méthode : remplacer par des valeurs limites

On peut plafonner les valeurs aberrantes en les ramenant à une borne raisonnable (winsorization).

seuil = 3
moyenne = df["valeurs"].mean()
ecart_type = df["valeurs"].std()

borne_inf = moyenne - seuil * ecart_type
borne_sup = moyenne + seuil * ecart_type

df["valeurs_clippées"] = df["valeurs"].clip(lower=borne_inf, upper=borne_sup)

 

Méthode : remplacement par des interpolations

Si les données sont temporelles ou ordonnées, on peut interpoler les valeurs aberrantes à partir des points voisins.

df.loc[df["zscore"].abs() > 3, "valeurs"] = None
df["valeurs"] = df["valeurs"].interpolate()

 

Conseils pratiques

 

Conclusion

Traiter les outliers détectés par le Z-score est une étape délicate. La méthode choisie (suppression, remplacement par médiane, bornes ou interpolation) doit dépendre du contexte métier, de la distribution des données et de l’objectif d’analyse. Il est souvent recommandé de tester plusieurs approches et de comparer les résultats pour choisir la plus pertinente.