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.
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.
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.
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.