पहले अंक के लिए Benford's Law
Benford's Law कहता है कि पहले अंक के d होने की प्रायिकता लगभग (1 + 1/d) के लघुगणक के बराबर होती है.
उम्मीदित आवृत्तियाँ प्लॉट करने पर यह स्पष्ट हो जाएगा कि अंक 1,…,9 समान आवृत्ति से नहीं आते.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Fraud Detection
अभ्यास निर्देश
- पहले अंक के लिए base 10 वाला log उपयोग करते हुए
benlawनाम का फ़ंक्शन बनाकर Benford's Law इंप्लीमेंट करें. - पहले अंक के रूप में 5 होने की अपेक्षित आवृत्ति निकालें.
- एक dataframe बनाएँ जिसमें एक कॉलम
digitहो जिसमें 1 से 9 तक के अंक हों, और एक कॉलमprobabilityहो जिसमें Benford's Law के तहत उनकी संबंधित प्रायिकताएँ हों. - सबमिट करें ताकि अंकों 1, 2, …, 9 की अपेक्षित आवृत्तियों का barplot बने.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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))