Prawo Benforda w wykrywaniu oszustw

Wykrywanie oszustw w R

Bart Baesens

Professor Data Science at KU Leuven

Wiele zbiorów danych spełnia prawo Benforda

  • Dane, w których liczby reprezentują rozmiary faktów lub zdarzeń
  • Dane, w których liczby nie są ze sobą powiązane
  • Zbiory danych rosnące wykładniczo lub powstałe wskutek fluktuacji multiplikatywnych
  • Mieszaniny różnych zbiorów danych
  • Niektóre znane nieskończone ciągi liczb całkowitych

Najlepiej, gdy zbiór zawiera ponad 1000 liczb obejmujących wiele rzędów wielkości.

Wykrywanie oszustw w R

Przykłady

  • transakcje księgowe
  • transakcje kartą kredytową
  • salda klientów
  • współczynniki śmiertelności
  • średnice planet
  • rachunki za prąd i telefon
  • liczby Fibonacciego
  • dochody
  • roszczenia ubezpieczeniowe
  • długości i przepływy rzek
  • dane kredytowe
  • liczby artykułów prasowych
  • stałe fizyczne i matematyczne
  • populacje miast
  • potęgi liczby 2
  • zamówienia zakupu
  • ceny akcji i nieruchomości
  • ...
Wykrywanie oszustw w R

Prawo Benforda w wykrywaniu oszustw

  • Oszustwa polegają zazwyczaj na wprowadzaniu fikcyjnych liczb lub modyfikowaniu rzeczywistych danych.
  • Prawo Benforda jest popularnym narzędziem wykrywania oszustw i jest nawet dopuszczalne jako dowód w sądach USA.
  • Stosowano je m.in. do wykrywania oszustw ubezpieczeniowych, czekowych, kradzieży energii, rachunkowości sądowej i oszustw płatniczych.
  • Zob. także książkę Benford's Law: Applications for forensic accounting, auditing, and fraud detection Nigrini (John Wiley & Sons, 2012).
Wykrywanie oszustw w R

Uwaga

Dane mogą po prostu nie spełniać prawa Benforda.

  • Jeśli dane mają dolne i/lub górne ograniczenie lub są skupione w wąskim przedziale, np. stawka godzinowa, wzrost ludzi.
  • Jeśli liczby pełnią rolę numerów identyfikacyjnych lub etykiet, np. PESEL, numery lotów, tablice rejestracyjne, numery telefonów.
  • Fluktuacje addytywne zamiast multiplikatywnych, np. liczba uderzeń serca w ciągu dnia.
Wykrywanie oszustw w R

Prawo Benforda dla dwóch pierwszych cyfr

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.

Wykrywanie oszustw w R

Dane spisowe

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

Dane spisowe – wykres benforda dla dwóch cyfr

Wykrywanie oszustw w R

Zwroty kosztów pracowniczych

  • Dział audytu wewnętrznego sprawdza zwroty kosztów pracowniczych pod kątem oszustw.
  • Pracownicy mogą ubiegać się o zwrot kosztów posiłków służbowych i podróży, przesyłając skany paragonów.
  • Przeanalizujemy kwoty zwrócone pracownikowi Sebastiaanowi w ciągu ostatnich 5 lat.
  • Zbiór expenses zawiera 1000 zwrotów kosztów.
  • Użyjemy ponownie funkcji z pakietu benford.analysis.
Wykrywanie oszustw w R

Analiza prawem Benforda dla pierwszej cyfry

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

Analiza wydatków – prawo Benforda dla pierwszej cyfry

Wykrywanie oszustw w R

Analiza prawem Benforda dla dwóch pierwszych cyfr

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

Analiza wydatków – prawo Benforda dla dwóch pierwszych cyfr

Wykrywanie oszustw w R

Czas na ćwiczenia!

Wykrywanie oszustw w R

Preparing Video For Download...