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
Pokyny k cvičení
- Implementuj Benfordův zákon jako funkci
benlawpro 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
digitobsahujícím číslice od 1 do 9 a jedním sloupcemprobabilityobsahují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))