TECH 으로 돌아가기
TECH HACKER NEWS 오늘 5분 읽기 28 READS

숫자는 왜 자꾸 1로 시작할까 - 회계 부정을 잡아내는 벤포드의 법칙

숫자에 숨어 있는 이상한 규칙

여러분, 세상에 흩어진 수많은 숫자들을 한번 떠올려 보세요. 전 세계 나라들의 인구, 강의 길이, 주식 가격, 회사들의 매출액, 전기요금 고지서 금액 같은 것들요. 이 숫자들의 '맨 앞자리'만 뽑아서 통계를 내면 1부터 9까지 골고루 나올 것 같잖아요. 각각 11% 정도씩요. 그런데 실제로는 전혀 그렇지 않아요.

맨 앞자리가 1인 숫자가 전체의 약 30%나 차지하거든요. 2로 시작하는 건 약 18%, 그렇게 점점 줄어들다가 9로 시작하는 숫자는 5%도 안 돼요. 이 신기한 편향을 설명하는 게 바로 '벤포드의 법칙(Benford's Law)'입니다. 최근에 이 법칙을 실제 데이터셋들에 하나하나 적용해서 눈으로 확인해 볼 수 있는 인터랙티브 탐색 도구가 공개됐는데요. 데이터를 바꿔가며 막대그래프가 벤포드 곡선에 착 달라붙는 걸 직접 보면, 글로만 읽을 때보다 훨씬 '아, 진짜네' 싶어져요.

왜 하필 1이 30%나 될까

이게 뭐냐면요, 자연의 숫자들이 '더하기'가 아니라 '곱하기'로 자라기 때문이에요. 어떤 값이 1에서 2가 되려면 100%나 늘어나야 하죠. 그런데 8에서 9로 가는 건 겨우 12.5%만 늘면 돼요. 그러니까 값이 커지는 동안 앞자리가 1인 구간에 '머무는 시간'이 훨씬 길 수밖에 없어요. 로그(log) 눈금 자를 하나 떠올려 보세요. 1과 2 사이 간격이 8과 9 사이 간격보다 훨씬 넓거든요. 자연에서 뭔가가 자랄 때는 대개 복리처럼 일정 비율로 커지기 때문에, 결국 작은 앞자리에 더 오래 머물게 되는 거예요.

수식으로 보면 앞자리가 d일 확률이 log10(1 + 1/d)로 딱 떨어져요. d가 1이면 log10(2)는 약 0.301, 그래서 30%가 나오는 거고요. 다만 중요한 건 아무 데이터에나 맞는 게 아니라는 점이에요. 몇 십부터 몇 백만까지 여러 자릿수에 걸쳐 넓게 퍼져 있고, 인위적인 상한이나 하한이 없는 데이터에서 잘 맞아요. 반대로 사람 키처럼 다들 비슷비슷한 값이거나, 전화번호처럼 규칙이 정해진 숫자에는 안 맞고요. 그래서 이 탐색 도구가 여러 실제 데이터셋을 나란히 보여주는 게 의미가 커요. 어떤 데이터는 곡선에 딱 맞고 어떤 건 어긋나는지, 그 경계 감각을 길러주거든요.

회계 부정을 잡아내는 탐정

이 법칙이 진짜 재밌는 건 실무에서 '부정 탐지' 도구로 쓰인다는 거예요. 사람이 숫자를 손으로 지어낼 때는 자기도 모르게 앞자리를 골고루 쓰거나 5, 6 같은 중간 숫자를 유난히 많이 넣어요. 그래서 회계 장부 금액들의 앞자리 분포가 벤포드 곡선에서 크게 벗어나면 '누가 숫자를 만들어냈나?' 하는 경고 신호가 되는 거죠. 실제로 세무 당국이 탈세 조사에, 감사관이 분식회계 적발에 이 지표를 참고하고, 선거 개표나 과학 논문 데이터의 조작 여부를 따질 때도 1차 필터로 등장해요.

한국 개발자에게 주는 힌트

데이터를 다루는 분이라면 이건 그냥 재밌는 수학 이야기가 아니라 꽤 실용적인 무기예요. 결제 로그, 거래 금액, 센서 수치 같은 게 자연스러운 데이터인지 아니면 누가 만들어낸 가짜인지 빠르게 감을 잡을 수 있거든요. 파이썬이라면 앞자리를 뽑아서 히스토그램을 그리고, 관측값이 이론값과 얼마나 다른지 재는 카이제곱 검정을 한 번 돌리는 것만으로 이상 탐지 파이프라인의 1차 필터가 만들어져요. 반대로 테스트용 더미 데이터를 랜덤으로 찍어낼 때 벤포드를 안 지키면 '어딘가 가짜 같은' 데이터가 된다는 것도 알아두면 좋아요.

한 줄로 정리하면, 자연스러운 숫자에는 지문 같은 패턴이 숨어 있고 그걸 알면 진짜와 가짜를 구별할 수 있다는 거예요. 여러분이 운영하는 서비스의 로그나 거래 데이터, 과연 벤포드 곡선에 잘 맞을까요? 오늘 퇴근 전에 한번 돌려보고 싶지 않나요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://vatsalbakshi.com/blog/benfords-law/
SHARE
처리 중...