Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Cài đặt luật Benford dưới dạng hàm benlaw cho 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 digit chứa các chữ số từ 1 đến 9, và một cột probability chứ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))
Chỉnh sửa và Chạy Mã