Luật Benford cho chữ số đầu tiên
Luật Benford cho biết xác suất chữ số đầu tiên bằng d xấp xỉ bằng logarit của (1 + 1/d).
Bằng cách trực quan hóa tần suất kỳ vọng, bạn sẽ thấy các chữ số 1,…,9 không xuất hiện với tần suất như nhau.
Bài tập này là một phần của khóa học
Phát hiện gian lận với R
Hướng dẫn bài tập
- Cài đặt luật Benford dưới dạng hàm
benlawcho chữ số đầu tiên, dùng log cơ số 10. - Tính tần suất kỳ vọng khi chữ số đầu tiên là 5.
- Tạo một dataframe với một cột
digitchứa các chữ số từ 1 đến 9, và một cộtprobabilitychứa các xác suất tương ứng theo Luật Benford. - Gửi để vẽ biểu đồ cột thể hiện tần suất kỳ vọng cho các chữ số 1, 2, …, 9.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))