첫 자리 숫자에 대한 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))