LoslegenKostenlos loslegen

Benfordsches Gesetz für die erste Ziffer

Das benfordsche Gesetz besagt, dass die Wahrscheinlichkeit, dass die erste Ziffer gleich d ist, näherungsweise dem Logarithmus von (1 + 1/d) entspricht. Wenn du die erwarteten Häufigkeiten darstellst, wird deutlich, dass die Ziffern 1,…,9 nicht gleich häufig vorkommen.

Diese Übung ist Teil des Kurses

Fraud Detection in R

Kurs anzeigen

Anleitung zur Übung

  • Implementiere das benfordsche Gesetz als Funktion benlaw für die erste Ziffer unter Verwendung des Logarithmus zur Basis 10.
  • Berechne die erwartete Häufigkeit dafür, dass 5 die erste Ziffer ist.
  • Erstelle einen Dataframe mit einer Spalte digit, die die Ziffern 1 bis 9 enthält, und einer Spalte probability, die deren jeweiligen Wahrscheinlichkeiten nach dem benfordschen Gesetz enthält.
  • Sende deine Lösung, um die erwarteten Häufigkeiten für die Ziffern 1, 2, …, 9 in einem Balkendiagramm zu plotten.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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))
Code bearbeiten und ausführen