Détecter les valeurs aberrantes au-delà de 1.5*IQR

 

Introduction

Les valeurs aberrantes, ou outliers, sont des points de données qui s’écartent significativement du reste du jeu de données. Elles peuvent être dues à des erreurs de saisie, des variations naturelles, ou des phénomènes rares. Leur détection est une étape essentielle du data cleaning, car les valeurs aberrantes peuvent fausser les résultats d’analyse et impacter négativement la performance des modèles de machine learning.

La méthode de l’IQR (Interquartile Range)

L’une des méthodes les plus couramment utilisées pour détecter les valeurs aberrantes est basée sur l’IQR (Intervalle Interquartile). Cette méthode est simple, robuste et très utilisée en statistiques descriptives.

L’IQR est défini comme la différence entre le troisième quartile (Q3) et le premier quartile (Q1) :

IQR = Q3 - Q1

Une valeur est considérée comme aberrante si elle est :


x < Q1 - 1.5 × IQR
ou
x > Q3 + 1.5 × IQR

Cette règle permet d’identifier les points situés en dehors de la zone de concentration des données. Le facteur 1.5 est un seuil empirique souvent utilisé, mais il peut être ajusté en fonction du contexte (2 ou 3 pour être plus strict, par exemple).

Étapes pour détecter les outliers

 

Exemple avec des données simples :

D = [7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 50]
  1. Trier les données (déjà fait ici).
  2. Calculer Q1 (1er quartile) : médiane de la moitié inférieure → Q1 = 10
  3. Calculer Q3 (3e quartile) : médiane de la moitié supérieure → Q3 = 18
  4. Calculer l’IQR :
    IQR = Q3 - Q1 = 18 - 10 = 8
  5. Calculer les bornes :
    
    Borne inférieure = Q1 - 1.5 × IQR = 10 - 12 = -2
    Borne supérieure = Q3 + 1.5 × IQR = 18 + 12 = 30
        
  6. Identifier les valeurs en dehors de ces bornes :
    
    La valeur 50 est > 30 → valeur aberrante
        

Détection automatique avec Python

 

Utilisation de NumPy :

import numpy as np

data = np.array([7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 50])
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1

lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr

outliers = data[(data < lower_bound) | (data > upper_bound)]

print("Outliers détectés :", outliers)

 

Avec Pandas :

import pandas as pd

df = pd.Series([7, 9, 10, 12, 13, 14, 15, 16, 18, 20, 21, 50])
q1 = df.quantile(0.25)
q3 = df.quantile(0.75)
iqr = q3 - q1

lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr

outliers = df[(df < lower_bound) | (df > upper_bound)]

print("Outliers détectés :", outliers.tolist())

 

Avantages de la méthode IQR

 

Limites

 

Conclusion

Détecter les valeurs aberrantes est une étape essentielle dans le processus d’analyse de données. La méthode du 1.5 × IQR offre une approche simple, intuitive et robuste pour identifier les points anormaux. Une fois détectés, ces outliers peuvent être retirés, corrigés ou analysés séparément, en fonction des objectifs du projet.

Une bonne compréhension de cette méthode renforce la qualité de vos analyses statistiques et améliore la fiabilité de vos modèles prédictifs.