Wykrywanie oszustw w R
Bart Baesens
Professor Data Science at KU Leuven
Najlepiej, gdy zbiór zawiera ponad 1000 liczb obejmujących wiele rzędów wielkości.
Dane mogą po prostu nie spełniać prawa Benforda.
Zbiór danych spełnia prawo Benforda dla dwóch pierwszych cyfr, jeśli prawdopodobieństwo, że pierwsze dwie cyfry $D_1D_2$ wynoszą $d_1d_2$, jest w przybliżeniu:
$$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
Test ten jest bardziej wiarygodny niż test pierwszej cyfry i najczęściej stosowany w wykrywaniu oszustw.
bfd.cen <- benford(census.2009$pop.2009, number.of.digits = 2)
plot(bfd.cen)

expenses zawiera 1000 zwrotów kosztów.benford.analysis.bfd1.exp <- benford(expenses, number.of.digits = 1)
plot(bfd1.exp)

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

Wykrywanie oszustw w R