Định luật Benford để phát hiện gian lận

Phát hiện gian lận với R

Bart Baesens

Professor Data Science at KU Leuven

Nhiều tập dữ liệu tuân theo Định luật Benford

  • Dữ liệu mà số biểu thị quy mô của sự kiện hay hiện tượng
  • Dữ liệu trong đó các số không liên hệ với nhau
  • Tập dữ liệu tăng theo hàm mũ hoặc do dao động nhân tạo ra
  • Hỗn hợp của các tập dữ liệu khác nhau
  • Một số dãy số nguyên vô hạn nổi tiếng

Tốt nhất có hơn 1000 số, trải dài qua nhiều bậc độ lớn.

Phát hiện gian lận với R

Ví dụ

  • giao dịch kế toán
  • giao dịch thẻ tín dụng
  • số dư khách hàng
  • tỷ lệ tử vong
  • đường kính các hành tinh
  • hóa đơn điện và điện thoại
  • dãy Fibonacci
  • thu nhập
  • yêu cầu bồi thường bảo hiểm
  • chiều dài và lưu lượng sông
  • dữ liệu khoản vay
  • số lượng bài báo
  • hằng số vật lý và toán học
  • dân số các thành phố
  • lũy thừa của 2
  • đơn đặt hàng mua
  • giá cổ phiếu và nhà ở
  • ...
Phát hiện gian lận với R

Định luật Benford để phát hiện gian lận

  • Gian lận thường được thực hiện bằng cách thêm số bịa đặt hoặc sửa số liệu thực.
  • Định luật Benford là công cụ phổ biến để phát hiện gian lận và thậm chí được chấp nhận làm bằng chứng tại tòa ở Mỹ.
  • Ví dụ đã áp dụng thành công cho gian lận bồi thường, gian lận séc, trộm điện, kế toán pháp y và gian lận thanh toán.
  • Xem thêm sách Benford's Law: Applications for forensic accounting, auditing, and fraud detection của Nigrini (John Wiley & Sons, 2012).
Phát hiện gian lận với R

Cẩn trọng

Lưu ý dữ liệu đôi khi đơn giản là không phù hợp với Định luật Benford.

  • Khi có cận dưới và/hoặc cận trên hoặc dữ liệu tập trung trong khoảng hẹp, ví dụ lương theo giờ, chiều cao con người.
  • Khi số được dùng làm mã định danh hay nhãn, ví dụ số an sinh xã hội, số hiệu chuyến bay, biển số xe, số điện thoại.
  • Dao động cộng thay vì dao động nhân, ví dụ số nhịp tim trong một ngày
Phát hiện gian lận với R

Định luật Benford cho hai chữ số đầu

Một tập dữ liệu thỏa Định luật Benford cho hai chữ số đầu nếu xác suất hai chữ số đầu $D_1D_2$ bằng $d_1d_2$ xấp xỉ:

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

Bài kiểm tra này tin cậy hơn kiểm tra chữ số đầu và thường dùng nhất trong phát hiện gian lận.

Phát hiện gian lận với R

Dữ liệu điều tra dân số

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

bfd2census

Phát hiện gian lận với R

Hoàn ứng nhân viên

  • Bộ phận kiểm toán nội bộ cần kiểm tra hoàn ứng của nhân viên để tìm gian lận.
  • Nhân viên có thể hoàn ứng bữa ăn công tác và chi phí đi lại sau khi gửi ảnh quét hóa đơn.
  • Hãy phân tích các khoản hoàn ứng của nhân viên Sebastiaan trong 5 năm qua.
  • Tập dữ liệu expenses có 1000 khoản hoàn ứng.
  • Ta sẽ tiếp tục dùng hàm trong gói benford.analysis.
Phát hiện gian lận với R

Phân tích theo Định luật Benford cho chữ số đầu

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

bfd1exp

Phát hiện gian lận với R

Phân tích theo Định luật Benford cho hai chữ số đầu

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

bfd2exp

Phát hiện gian lận với R

Cùng luyện tập nào!

Phát hiện gian lận với R

Preparing Video For Download...