Un exemple de détection d’anomalies

2019-03-15T17:47:16+00:00 22 février 2019|Catégories : ANALYSE|Mots-clés : , , |

L’objectif de cette série de posts est de montrer que les techniques de base de l’analyse de données sont tout à fait accessibles à l’expert-comptable et au commissaire aux comptes. Le précédent post était consacré aux modèles de régression linéaire et non linéaire, utilisés pour la prédiction. Nous allons nous intéresser aujourd’hui aux algorithmes de détection d’anomalies.

SOMMAIRE

Partager l’article

CATEGORIES

Par définition, la détection d’anomalie vise à repérer des données qui ne sont pas conformes à ce qui pourrait être attendu au regard des autres données à notre disposition. Il s’agit, par exemple, de données qui sont atypiques pour la distribution de probabilité observée.

Il existe de nombreux algorithmes de détection d’anomalies. Parmi ces algorithmes, l’un des plus simples est sans doute la « loi de Bendford » souvent utilisée pour la détection de fraudes. Cet exemple nous permettra de bien comprendre les principes de base de la détection d’anomalies en data science.

Si vous êtes auditeur, vous avez probablement entendu parler de la loi de Bendford, mais saviez-vous qu’elle peut être facilement mise en œuvre avec Excel ?

Selon la loi de Bendford, pour n’importe quelle série de données, la fréquence de distribution du premier chiffre suit une loi logarithmique. Soit f la fréquence de distribution du chiffre d (d est donc un entier entre 1 et 9), alors f = log (1+1/d).

En clair, la fréquence d’apparition de la 1ère décimale est de :

  • 30,10% pour le chiffre 1 ;
  • 17,61% pour le chiffre 2 ;
  • 12,49% pour le chiffre 3 ;
  • 9,69% pour le chiffre 4 ;
  • 7,92% pour le chiffre 5 ;
  • 6,69% pour le chiffre 6 ;
  • 5,80% pour le chiffre 7 ;
  • 5,11% pour le chiffre 8 ;
  • 4,58% pour le chiffre 9.

Bien sûr, la loi de Bendford n’est vérifiée que pour les très gros volumes de données, disons plusieurs dizaines de milliers de lignes. Cette loi est utilisée pour détecter les fraudes : fraudes électorales, fraudes scientifiques, fraudes fiscales et… fraudes comptables. En effet, la fraude nécessite souvent une manipulation des données et donc une distorsion de ces données par rapport à la loi de Bendford. Pour mesurer cet écart entre données théoriques (telles que prévues par la loi de Bendford) et les données observées, il faut utiliser le test du khi-deux.

Différentes manières de passer à la pratique : d’abord très simplement avec Excel !

En effet, si le nombre de lignes reste inférieur au million, ce test peut être effectué sous Excel avec des fonctions simples à utiliser. L’association des fonctions GAUCHE() et CNUM() fournira le premier chiffre de chaque nombre et la fonction FREQUENCE() calculera la fréquence d’apparition des chiffres 1, 2… jusqu’à 9. Ces fréquences devront être comparées aux valeurs théoriques de la loi de Bendford calculées avec la formule f = LOG (1+1/d) vue précédemment. Enfin, la fonction CHISQ.TEST() réalisera le test du khi-deux entre les fréquences d’apparition constatées sur les valeurs testées et les fréquences théoriques de la loi de Bendford. L’objectif est que le résultat de ce test soit le plus faible possible. Si le test du khi-deux fournit un résultat élevé, il y a peut-être eu fraude, en tous cas manipulation des données testées.

Ensuite, au delà du million de lignes, l’auditeur peut faire appel à des outils de datamining (ACL, IDEA etc.) ou encore, coder par lui-même l’algorithme qui est très simple !

Jugez-en par vous-même :

======================= Algorithme Loi de Bendford ================

Variable n en entier

Variable i en entier

Variable j en entier

Tableau nombres() en double

Tableau fréquences_mesurées(10) en double

Tableau fréquences_théoriques(10) en double

Lire n

Redim nombres (n)

Début

Fonction extraire_premier_chiffre(nombre en double) en entier

Si nombre = 0

Alors Renvoyer 0

Sinon

             SI nombre < 0

             Alors nombre = – nombre

             FinSi

FinSi

TantQue nombre <1

Nombre = Nombre*10

FinTantQue

TantQue nombre >=10

Nombre = Nombre/10

FinTantQue

Renvoyer Nombre

FinFonction

I=1

TantQue i<=n

             Lire nombres(i)

             j = extraire_premier_chiffre(nombres(i))

             fréquences_mesurées(j) = fréquences_mesurées(j)+1

             i=i+1

FinTantQue

j=1

TantQue j<=9

             fréquences_mesurées(j) = fréquences_mesurées(j) / n

             Ecrire fréquences_mesurées(j)

             fréquences_théoriques = log (1+1/j)

             Ecrire fréquences_théoriques(j)

             j=j+1

FinTantQue

Fin

==========================================================

Une structure d’algorithme simple et concise non ? Il tient en à peine une page.

En conclusion, avec l’exemple de la loi de Bendford, nous venons de découvrir le deuxième pilier de l’analyse de données : les algorithmes de détection d’anomalies. Le principe de ces algorithmes est à chaque fois le même : identifier les données qui ne suivent pas le même schéma ou qui sont atypiques pour la distribution de probabilité observée.

Notre exemple était particulièrement simple car nous avons comparé les fréquences d’apparition des premiers chiffres par rapport à une distribution connue : f = log(1+1/d). Dans la majorité des cas, la difficulté de la détection d’anomalies provient du fait que l’auditeur ne connait pas a priori la distribution sous-jacente de l’ensemble des données. C’est à l’algorithme d’apprendre une métrique appropriée pour détecter les anomalies… A ce stade, il nous suffit de savoir que ces algorithmes existent déjà et sont parfaitement maîtrisés : One-Class SVM (Support Vector Machine), réseaux bayésiens etc.

Voilà ! Après les modèles de régression linéaire et non linéaire, vous venez de découvrir le deuxième pilier de la « data science » : la détection d’anomalies. Pas si compliqué, non ?

Mon prochain post sera consacré au troisième et dernier pilier de cette discipline : les algorithmes de classification automatique.

Article initialement publié sur le compte LinkedIn de Jean-Michel Denys.

auteur

Jean-Michel Denys
Jean-Michel DenysManaging Partner à la Compagnie des Techniques Financières

Nos articles récents

L’audit des algorithmes et des données

14 mai 2019|

L’intelligence artificielle au service des professions du chiffre

15 mars 2019|

Un exemple de classification automatique pour les experts-comptables

5 mars 2019|

Un exemple de détection d’anomalies

22 février 2019|

Imprimer cet article

Laisser un commentaire