시작하기무료로 시작하기

첫 자리 숫자에 대한 Benford's Law

Benford's Law에 따르면 첫 자리 숫자가 d일 확률은 대략 (1 + 1/d)의 로그와 같아요. 기대 빈도를 그래프로 그려 보면 숫자 1,…,9가 동일한 빈도로 나타나지 않는 것이 분명해져요.

이 연습은 강의의 일부입니다

R로 배우는 사기 탐지

강의 보기

연습 안내

  • 첫 자리 숫자에 대해 밑이 10인 로그를 사용해 Benford's law를 함수 benlaw로 구현하세요.
  • 첫 자리 숫자가 5일 기대 빈도를 계산하세요.
  • 한 열에는 1부터 9까지의 숫자를 담는 digit, 다른 열에는 Benford's Law에 따른 각 숫자의 확률을 담는 probability를 가진 데이터프레임을 만드세요.
  • 막대그래프로 숫자 1, 2, …, 9의 기대 빈도를 그릴 수 있도록 Submit하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Implement Benford's Law for first digit
benlaw <- function(d) log10(___ + ___ / ___)

# Calculate expected frequency for d=5
benlaw(___)

# Create a dataframe of the 9 digits and their Benford's Law probabilities
df <- data.frame(digit = ___:___, probability = ___)

# Create barplot with expected frequencies
ggplot(df, aes(x = digit, y = probability)) + 
	geom_bar(stat = "identity", fill = "dodgerblue") + 
	xlab("First digit") + ylab("Expected frequency") + 
	scale_x_continuous(breaks = 1:9, labels = 1:9) + 
	ylim(0, 0.33) + theme(text = element_text(size = 25))
코드 편집 및 실행