Zacznij terazZacznij za darmo

Prawo Benforda dla pierwszej cyfry

Prawo Benforda mówi, że prawdopodobieństwo, iż pierwsza cyfra wynosi d, jest w przybliżeniu równe logarytmowi z (1 + 1/d). Wykres oczekiwanych częstości pokaże wyraźnie, że cyfry 1,…,9 nie występują z jednakową częstotliwością.

To ćwiczenie jest częścią kursu

Wykrywanie oszustw w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimplementuj prawo Benforda jako funkcję benlaw dla pierwszej cyfry, używając logarytmu o podstawie 10.
  • Oblicz oczekiwaną częstość dla cyfry 5 jako pierwszej cyfry.
  • Utwórz ramkę danych z jedną kolumną digit zawierającą cyfry od 1 do 9 oraz kolumną probability zawierającą odpowiadające im prawdopodobieństwa według prawa Benforda.
  • Prześlij odpowiedź, aby zobaczyć wykres słupkowy oczekiwanych częstości dla cyfr 1, 2, …, 9.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod