Loi de Benford pour la détection de fraude

Détection de fraude en R

Bart Baesens

Professor Data Science at KU Leuven

De nombreux jeux de données suivent la loi de Benford

  • Données où les nombres représentent la taille de faits ou d'événements
  • Données dont les nombres n'ont aucun lien entre eux
  • Jeux de données qui croissent exponentiellement ou issus de fluctuations multiplicatives
  • Mélanges de jeux de données
  • Certaines suites d'entiers infinies bien connues

Idéalement, plus de 1000 nombres couvrant plusieurs ordres de grandeur.

Détection de fraude en R

Par exemple

  • écritures comptables
  • transactions par carte de crédit
  • soldes clients
  • taux de mortalité
  • diamètre des planètes
  • factures d'électricité et de téléphone
  • nombres de Fibonacci
  • revenus
  • déclarations d'assurance
  • longueurs et débits des fleuves
  • données de prêts
  • nombre d'articles de journaux
  • constantes physiques et mathématiques
  • populations des villes
  • puissances de 2
  • bons de commande
  • cours d'actions et prix de l'immobilier
  • ...
Détection de fraude en R

Loi de Benford et détection de fraude

  • La fraude consiste souvent à inventer des nombres ou modifier des observations réelles.
  • La loi de Benford est un outil populaire de détection de fraude et est même recevable comme preuve aux États-Unis.
  • Elle a par exemple été appliquée avec succès aux fraudes sur sinistres, sur chèques, au vol d'électricité, à l'audit judiciaire et aux fraudes de paiement.
  • Voir aussi l'ouvrage Benford's Law: Applications for forensic accounting, auditing, and fraud detection de Nigrini (John Wiley & Sons, 2012).
Détection de fraude en R

Attention

Notez qu'il est toujours possible que des données ne suivent pas la loi de Benford.

  • En présence d'une borne inférieure et/ou supérieure ou si les données sont concentrées dans un intervalle étroit, p. ex. taux horaire, taille des personnes.
  • Si les nombres servent d'identifiants ou d'étiquettes, p. ex. numéro de sécurité sociale, numéros de vol, plaques d'immatriculation, numéros de téléphone.
  • Fluctuations additives au lieu de multiplicatives, p. ex. battements cardiaques sur une journée
Détection de fraude en R

Loi de Benford pour les deux premiers chiffres

Un jeu de données suit la loi de Benford pour les deux premiers chiffres si la probabilité que les deux premiers chiffres $D_1D_2$ valent $d_1d_2$ est approximativement :

$$P(D_1D_2=d_1d_2)=\log\left(1+\frac{1}{d_1d_2}\right) \qquad d_1d_2\in [10, 11, ..., 98, 99]$$

benlaw <- function(d) log10(1 + 1 / d)
benlaw(12)
0.03476211

Ce test est plus fiable que celui du premier chiffre et le plus utilisé en détection de fraude.

Détection de fraude en R

Données de recensement

bfd.cen <- benford(census.2009$pop.2009, number.of.digits = 2) 
plot(bfd.cen) 

bfd2census

Détection de fraude en R

Remboursements de frais des employés

  • Le service d'audit interne doit vérifier les remboursements de frais pour détecter d'éventuelles fraudes.
  • Les employés peuvent se faire rembourser repas d'affaires et frais de déplacement après envoi des scans des reçus.
  • Analysons les montants remboursés à l'employé Sebastiaan sur les 5 dernières années.
  • Le jeu de données expenses contient 1000 remboursements.
  • Nous allons réutiliser la fonction du package benford.analysis.
Détection de fraude en R

Analyse avec la loi de Benford : premier chiffre

bfd1.exp <- benford(expenses, number.of.digits = 1) 
plot(bfd1.exp)

bfd1exp

Détection de fraude en R

Analyse avec la loi de Benford : deux premiers chiffres

bfd2.exp <- benford(expenses, number.of.digits = 2) 
plot(bfd2.exp)

bfd2exp

Détection de fraude en R

Passons à la pratique !

Détection de fraude en R

Preparing Video For Download...