Benfords lag för första siffran
Benfords lag säger att sannolikheten att den första siffran är d är ungefär lika med logaritmen av (1 + 1/d).
Genom att plotta de förväntade frekvenserna blir det tydligt att siffrorna 1,…,9 inte förekommer med lika stor sannolikhet.
Den här övningen är en del av kursen
Bedrägeridetektering i R
Övningsinstruktioner
- Implementera Benfords lag som en funktion
benlawför den första siffran med bas-10-logaritm. - Beräkna den förväntade frekvensen för att ha 5 som första siffra.
- Skapa en dataram med en kolumn
digitsom innehåller siffrorna 1 till 9, och en kolumnprobabilitymed deras respektive sannolikheter enligt Benfords lag. - Skicka in svar för att plotta de förväntade frekvenserna för siffrorna 1, 2, …, 9 i ett stapeldiagram.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))