Détection de la fraude en R
Bart Baesens
Professor Data Science at KU Leuven
Idéalement, plus de 1000 nombres couvrant plusieurs ordres de grandeur.
Notez qu'il est toujours possible que des données ne respectent pas la loi de Benford.
Un jeu de données respecte 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 est le plus utilisé en détection de fraude.
bfd.cen <- benford(census.2009$pop.2009, number.of.digits = 2)
plot(bfd.cen)

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

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

Détection de la fraude en R