Data Quality : Le Z-score pour aider à la détection d’anomalies

Actualités
Data Quality : Le Z-score pour aider à la détection d'anomalies

Dans le monde de l’analyse des données et de la prise de décision, il est primordial de s’assurer de la précision et de la fiabilité de vos informations. Parmi l’ensemble des techniques à votre disposition, le Z score se distingue comme une solution puissante pour identifier les anomalies ou les valeurs aberrantes au sein de vos données, ces anomalies sont susceptibles d’influencer les décisions ou de révéler des informations précieuses. Les anomalies peuvent fausser les analyses et conduire à des décisions erronées.

 

La décision d’utiliser le Z score pour la détection d’anomalies intervient lorsque vous souhaitez trouver des points de données inhabituels dans votre ensemble de données. Cette stratégie est utile pour divers problèmes, tels que la détection de défauts de fabrication, la fraude financière, les problèmes de santé, les intrusions dans les réseaux, etc.

 

Le Z-score aide à identifier les points de données qui s’écartent significativement de la norme, ce qui permet des actions proactives et une meilleure prise de décision dans des domaines tels que le contrôle de la qualité, la finance, les soins de santé et la cybersécurité. Le choix d’utiliser le Z-score doit tenir compte des caractéristiques des données, des hypothèses de normalité et des spécificités du problème.

 

Qu’est-ce que la détection d’anomalies ?

 

La détection d’anomalies (ou détection de valeurs aberrantes) est l’identification d’éléments, d’événements ou d’observations rares qui éveillent des soupçons en différant significativement de la majorité des données. En règle générale, les données anormales peuvent être liées à un type de problème ou à un événement rare tel que, une fraude bancaire, des problèmes médicaux, la détection des pannes et la maintenance prédictive, etc.

 

L’identification des anomalies est essentielle avant d’exécuter toute analyse statistique ou de préparer des données pour la formation de modèles d’apprentissage automatique. Cela requiert une connaissance approfondie du domaine pour choisir quels points de données sont considérés comme des vraies anomalies ou pas.

 

Qu’est-ce qu’une valeur aberrante ?

 

Les valeurs aberrantes sont des points de données qui sont éloignés des autres points de données. En d’autres termes, il s’agit de valeurs inhabituelles dans un ensemble de données. Les valeurs aberrantes sont problématiques pour de nombreuses analyses statistiques, car elles peuvent empêcher les tests d’aboutir à des résultats significatifs ou fausser les résultats réels.

 

Source de l’image : Fondation de la science des données

 

Il est crucial d’identifier avec soin les valeurs aberrantes potentielles dans votre ensemble de données et de les traiter correctement pour obtenir des résultats précis. Les points de données extrêmes ne sont pas nécessairement des valeurs aberrantes à éliminer, c’est à l’utilisateur de décider s’ils doivent être inclus ou non dans le modèle. Cependant, des erreurs de frappe ou des artefacts de collecte ou de traitement des données peuvent parfois se produire.

L’identification des valeurs aberrantes nécessite une connaissance du domaine et une compréhension du processus de collecte des données. Bien qu’il n’y ait pas de définition mathématique solide, le Z-score est une méthode simple pour sélectionner rapidement des valeurs aberrantes.

 

Qu’est-ce que le Z-score ?

 

Le Z-score est une mesure statistique qui indique la distance entre un point de données et le reste de l’ensemble des données, lorsque les données suivent une distribution normale. En termes plus techniques, le Z-score permet de comprendre si une valeur de données est supérieure ou inférieure à la moyenne et à quel point elle s’en éloigne. Plus précisément, le Z-score indique le nombre d’écarts types d’un point de données par rapport à la moyenne.

Par exemple, un Z-score de 2,5 signifie que le point de données est éloigné de la moyenne de 2,5 écarts-types. Et comme il est loin du centre, il est considéré comme une valeur aberrante.

 

Comment cela fonctionne-t-il ?

 

Le Z-score est une mesure paramétrique qui prend en compte deux paramètres : 

  • La moyenne
  • L’écart-type. 

Une fois ces deux paramètres calculés, il est facile de trouver le Z-score d’un point de données.

Zscore = (x mean) / écart-type 

 

Notez que la moyenne et l’écart-type sont calculés pour l’ensemble des données, alors que x représente chaque point de données. Cela signifie que chaque point de données aura son propre Z-score, alors que la moyenne/l’écart type reste le même partout.

La méthode Z-Score est efficace pour traiter les valeurs aberrantes pour les points de données qui suivent une distribution normale.

 

Une distribution normale est illustrée ci-dessous et on estime que :
  • 68 % des points de données se situent entre +/- 1 écart type.
  • 95 % des points de données se situent entre +/- 2 écarts-types
  • 99,7 % des points de données se situent entre +/- 3 écarts-types

 

 

Data Quality : Le Z-score pour aider à la détection d'anomalies

 

 

Pour déterminer si les données sont normalement distribuées, vous pouvez utiliser des techniques d’inspection visuelle telles que les histogrammes et les diagrammes en boîte. Des tests statistiques tels que les tests de Shapiro-Wilk, de Kolmogorov-Smirnov et d’Anderson-Darling peuvent également fournir des évaluations quantitatives de la normalité. Cependant, il est important de considérer que ces tests ne constituent pas une preuve définitive et qu’une combinaison d’inspection visuelle et de tests statistiques est souvent recommandée.

 

Plus le Z-score est éloigné de zéro, plus elle est inhabituelle. Une valeur seuil standard pour trouver des valeurs aberrantes est un Z-score de +/-3 ou plus par rapport à zéro. En règle générale, les valeurs avec un Z score supérieur à 3 ou inférieur à -3 sont souvent considérées comme des valeurs aberrantes.

Lorsque vous utilisez l’opération “group by” dans les calculs de Z-scores, vous évaluez les points de données individuels dans le contexte de chaque groupe. Cela permet d’identifier les valeurs aberrantes, de supprimer les effets globaux et de faire des comparaisons entre les groupes. Cette approche permet une analyse plus ciblée et plus significative des données.

 

Traiter les valeurs aberrantes

 

Une fois que vous aurez identifié les valeurs aberrantes, vous déciderez quoi en faire. Vos principales options sont de les conserver ou de les supprimer de votre ensemble de données. Ceci est similaire au choix auquel vous êtes confronté lorsque vous traitez des données manquantes.

Pour chaque valeur aberrante, demandez-vous s’il s’agit d’une valeur vraie ou d’une erreur avant de décider.

  • La valeur aberrante correspond-elle aux autres mesures prises par le même participant ?
  • Ce point de données est-il complètement impossible ou peut-il raisonnablement provenir de votre population ?
  • Quelle est la source la plus probable de la valeur aberrante ? Est-ce une variation naturelle ou une erreur ?

En général, vous devez essayer d’accepter autant que possible les valeurs aberrantes, à moins qu’il ne soit clair qu’elles représentent des erreurs ou de mauvaises données.

 

 

Limites du Z-score

 

Bien que le Z-Score soit un moyen très efficace de détecter et supprimer les valeurs aberrantes, nous ne pouvons pas l’utiliser avec tous les types de données. Cette méthode ne fonctionne qu’avec les données qui sont complètement ou presque normalement distribuées. Cela signifie que cette méthode n’est pas adaptée aux données asymétriques, qu’elles soient à gauche ou à droite.

 

Quels sont les impacts du Z-Score sur la stratégie Data ?

 

Grâce au Z-Score, les entreprises peuvent donc détecter les incohérences, les valeurs manquantes ou les valeurs extrêmes dans leurs ensembles de données. Cela permet de nettoyer, de normaliser et de fiabiliser les données, garantissant ainsi leur intégrité et leur précision. Il sera alors possible de rendre la donnée disponible à toutes les directions métiers qui en ont besoin.

Ainsi les entreprises pourront  éviter les décisions basées sur des informations erronées, avec des conséquences potentiellement néfastes. Au contraire, des données de qualité permettent une prise de décision plus précise, une meilleure identification des tendances, une personnalisation plus efficace et une anticipation des opportunités.

De plus, des données fiables et de haute qualité permettent de prendre des décisions éclairées, de cibler les investissements, d’optimiser les ressources et de développer des offres et des expériences client plus pertinentes. Cela conduit à une amélioration de la performance globale de l’entreprise et à une meilleure satisfaction des clients grâce à des stratégies Data Driven.

 

Comment le Z-Score aide-t-il à garantir la qualité des données et à maximiser l’impact commercial ?

 

Évaluation de la qualité des données : Des Z-scores anormalement élevés ou bas peuvent indiquer des problèmes de qualité des données, tels que des erreurs de saisie ou des incohérences. Le Z-score  peut être utilisé comme critère pour déterminer quels points de données doivent être considérés comme des anomalies ou des valeurs aberrantes qui doivent être nettoyées ou corrigées. En fixant un seuil pour les Z-scores  acceptables, les entreprises peuvent systématiquement identifier et traiter les points de données susceptibles d’avoir un impact négatif sur l’analyse ou le processus de prise de décision.

 

Suivi du processus : Les Z-scores peuvent être calculés au fil du temps pour des mesures spécifiques ou des indicateurs clés de performance  afin de surveiller la stabilité du processus et d’identifier des modèles ou des changements inhabituels. En surveillant continuellement les Z-scores, les entreprises peuvent détecter lorsque certains processus ou systèmes s’écartent du comportement attendu, ce qui leur permet de prendre rapidement des mesures correctives et de maintenir la qualité des données.

 

Normalisation des données : Sans normalisation, les données combinées provenant de différentes sources et ayant des échelles ou des plages plus grandes peuvent dominer l’analyse, ce qui conduit à des résultats faussés. Le Z-score permet de normaliser les données en standardisant les valeurs des données sur une échelle commune basée sur la moyenne et l’écart type de l’ensemble de données. Ce processus garantit que tous les points de données sont comparables et contribuent de la même manière à l’analyse, ce qui facilite l’obtention d’informations précises et la prise de décisions éclairées.

 

Analyse prédictive : Les Z-scores peuvent être utilisés dans des modèles prédictifs pour évaluer l’impact de différentes variables sur une variable cible. Ces informations peuvent être exploitées pour optimiser les stratégies commerciales, allouer efficacement les ressources et stimuler la croissance de l’entreprise.

 

En résumé, le Z-score  est un outil statistique précieux qui permet aux entreprises de garantir la qualité des données et de maximiser l’impact commercial en détectant les valeurs aberrantes, en normalisant les données, en évaluant la qualité des données et en prenant des décisions éclairées fondées sur les données. L’intégration de l’analyse du Z-score dans les pratiques de gestion des données peut améliorer de manière significative l’efficacité et la fiabilité des processus et des stratégies de l’entreprise.

_

 

POUR ALLER PLUS LOIN 

 

 

Exemple d’implémentation :

 

Vous trouverez ci-dessous une implémentation Python du Z-score avec quelques exemples de points de données.

# importer numpy

import numpy as np

 

# points de données aléatoires pour calculer le  z-score

data = [5, 5, 5, -99, 5, 5, 5, 5, 5, 5, 88, 5, 5, 5]

 

# calculer la moyenne

mean = np.mean(data) 

 

# calculer le standard deviation

sd = np.std(data)

 

# Determiner un threshold

threshold = 2

 

# créer une liste vide pour stocker les valeurs aberrantes

outliers = []

 

# Detecter les outliers

for i in data: 

    z = (i-mean)/sd # calculate z-score

    if np.abs(z) > threshold:  # identify outliers

        outliers.append(i) # add to the empty list

 

# Imprimer les outliers    

print(“The detected outliers are: “, outliers)

 

#Résultat

-> The detected outliers are:  [-99, 88]

 

 

Autre exemple :

 

Dans cet exemple, on va générer le Z-score pour chaque colonne du dataframe, contrairement à l’exemple précédent qu’on applique sur une liste. 

On s’assure également de générer des données aléatoires qui suivent une loi gaussienne (loi normale).

 

 

#import numpy and pandas

import numpy as np

import pandas as pd

 

# pour des résultats cohérents générer des données aléatoires 

np.random.seed(7)

n_samples = 1000

n_features = 2

 

# générer des données gaussiennes de forme (125, 2)

gen_cov = np.eye(n_features)

gen_cov[0, 0] = 2.

X = np.dot(np.random.randn(n_samples, n_features), gen_cov)

 

#Créer un dataframe

df = pd.DataFrame(data=X)

df.rename(columns=  {0:‘c1’,1:‘c2’}, inplace = True)

 

# Créer une fonction pour signaler les limites du Z-Score

for col in df[[‘c1’,‘c2’]].columns:

    df[‘outlier_zscore’]= 0

 

# Calculer les limites

    upper_limit = df[col].mean() + 3 *  df[col].std()

    lower_limit = df[col].mean() 3 *  df[col].std()

 

#Retourner les limites

    conditionlist = [

        (df[col] >= upper_limit),

        (df[col] <= lower_limit),

        (df[col] < upper_limit) & (df[col] > lower_limit) & (df[‘outlier_zscore’]!=-1)]

    choicelist = [-1,-1,1]

    df[‘outlier_zscore’] = np.select(conditionlist, choicelist, default= 0)

 

# Imprimer les limites supérieure et inférieure

    print(“The detected outliers are: “, lower_limit,upper_limit)

 

#Résultat

–> The detected outliers are:  -5.94783654655283 5.961879541048983

    The detected outliers are:  -3.02796840080845 2.8741532593951904

 

 

 

 

Partager l'article: