IniziaInizia gratis

Legge di Benford per la prima cifra

La legge di Benford afferma che la probabilità che la prima cifra sia uguale a d è approssimativamente il logaritmo di (1 + 1/d). Tracciando le frequenze attese, sarà chiaro che le cifre da 1 a 9 non compaiono con la stessa frequenza.

Questo esercizio fa parte del corso

Rilevamento delle frodi in R

Visualizza il corso

Istruzioni dell'esercizio

  • Implementa la legge di Benford come funzione benlaw per la prima cifra usando il log in base 10.
  • Calcola la frequenza attesa che la prima cifra sia 5.
  • Crea un dataframe con una colonna digit contenente le cifre da 1 a 9 e una colonna probability con le rispettive probabilità secondo la legge di Benford.
  • Invia per tracciare le frequenze attese delle cifre 1, 2, …, 9 in un grafico a barre.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice