벤포드 법칙을 활용한 사기 탐지

R로 배우는 사기 탐지

Bart Baesens

Professor Data Science at KU Leuven

벤포드 법칙을 따르는 데이터셋

  • 사실이나 사건의 크기를 나타내는 숫자 데이터
  • 숫자 간 상호 관계가 없는 데이터
  • 지수적으로 증가하거나 곱셈적 변동에서 발생하는 데이터셋
  • 서로 다른 데이터셋의 혼합
  • 잘 알려진 무한 정수 수열

여러 자릿수 범위에 걸쳐 분포한 1000개 이상의 숫자가 이상적입니다.

R로 배우는 사기 탐지

예시

  • 회계 거래
  • 신용카드 거래
  • 고객 잔액
  • 사망률
  • 행성의 지름
  • 전기 및 전화 요금
  • 피보나치 수열
  • 소득
  • 보험 청구
  • 강의 길이 및 유량
  • 대출 데이터
  • 신문 기사 수
  • 물리 및 수학 상수
  • 도시 인구
  • 2의 거듭제곱
  • 구매 주문
  • 주가 및 주택 가격
  • ...
R로 배우는 사기 탐지

벤포드 법칙을 활용한 사기 탐지

  • 사기는 주로 허위 숫자를 추가하거나 실제 값을 변조하는 방식으로 이루어집니다.
  • 벤포드 법칙은 사기 탐지에 널리 쓰이는 도구이며, 미국에서는 법적 증거로도 인정됩니다.
  • 보험 청구 사기, 수표 사기, 전력 절도, 법정 회계, 결제 사기 등에 성공적으로 적용된 바 있습니다.
  • 참고 도서: Benford's Law: Applications for forensic accounting, auditing, and fraud detection, Nigrini (John Wiley & Sons, 2012).
R로 배우는 사기 탐지

주의 사항

데이터가 벤포드 법칙을 따르지 않을 수도 있습니다.

  • 하한 및/또는 상한이 있거나 좁은 구간에 집중된 경우, 예: 시급, 신장.
  • 숫자가 식별 번호나 레이블로 사용되는 경우, 예: 주민등록번호, 항공편 번호, 차량 번호판, 전화번호.
  • 곱셈적 변동이 아닌 덧셈적 변동의 경우, 예: 하루 심박수.
R로 배우는 사기 탐지

첫 두 자리에 대한 벤포드 법칙

데이터셋이 첫 두 자리에 대해 벤포드 법칙을 따르려면, 첫 두 자리 $D_1D_2$가 $d_1d_2$일 확률이 다음과 같아야 합니다:

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

이 검정은 첫 자리 검정보다 신뢰도가 높으며, 사기 탐지에서 가장 많이 활용됩니다.

R로 배우는 사기 탐지

인구조사 데이터

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

인구조사 데이터의 첫 두 자리 벤포드 분석

R로 배우는 사기 탐지

직원 경비 청구

  • 내부 감사 부서는 직원 경비 청구의 사기 여부를 점검해야 합니다.
  • 직원은 영수증 스캔 이미지를 제출하여 업무 식사 및 출장 비용을 청구할 수 있습니다.
  • 지난 5년간 직원 Sebastiaan에게 지급된 금액을 분석합니다.
  • 데이터셋 expenses에는 1000건의 청구 내역이 포함되어 있습니다.
  • benford.analysis 패키지의 함수를 다시 사용합니다.
R로 배우는 사기 탐지

첫 자리 벤포드 법칙 분석

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

경비 데이터의 첫 자리 벤포드 분석

R로 배우는 사기 탐지

첫 두 자리 벤포드 법칙 분석

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

경비 데이터의 첫 두 자리 벤포드 분석

R로 배우는 사기 탐지

연습해 봅시다!

R로 배우는 사기 탐지

Preparing Video For Download...