Začněte nyníZačněte zdarma

Benfordův zákon pro první číslici

Benfordův zákon říká, že pravděpodobnost, že první číslice bude rovna d, je přibližně logaritmus hodnoty (1 + 1/d). Vykreslením očekávaných frekvencí bude zřejmé, že číslice 1, …, 9 se nevyskytují se stejnou četností.

Toto cvičení je součástí kurzu

Detekce podvodů v R

Zobrazit kurz

Pokyny k cvičení

  • Implementuj Benfordův zákon jako funkci benlaw pro první číslici pomocí logaritmu o základu 10.
  • Vypočítej očekávanou frekvenci pro případ, kdy je první číslice 5.
  • Vytvoř datový rámec s jedním sloupcem digit obsahujícím číslice od 1 do 9 a jedním sloupcem probability obsahujícím jejich příslušné pravděpodobnosti podle Benfordova zákona.
  • Kód odešli a zobraz očekávané frekvence číslic 1, 2, …, 9 ve sloupcovém grafu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód