CommencerCommencer gratuitement

Loi de Benford pour le premier chiffre

La loi de Benford indique que la probabilité que le premier chiffre soit égal à d est approximativement le logarithme de (1 + 1/d). En traçant les fréquences attendues, vous verrez clairement que les chiffres 1,…,9 n’apparaissent pas avec la même fréquence.

Cet exercice fait partie du cours

Détection de fraude en R

Afficher le cours

Instructions

  • Implémentez la loi de Benford comme une fonction benlaw pour le premier chiffre en utilisant le logarithme en base 10.
  • Calculez la fréquence attendue pour que 5 soit le premier chiffre.
  • Créez un dataframe avec une colonne digit contenant les chiffres de 1 à 9, et une colonne probability contenant leurs probabilités respectives selon la loi de Benford.
  • Soumettez pour tracer les fréquences attendues des chiffres 1, 2, …, 9 dans un diagramme en barres.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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))
Modifier et exécuter le code