การตรวจจับการฉ้อโกงใน R
Bart Baesens
Professor Data Science at KU Leuven




ชุดข้อมูลเป็นไปตามกฎของ Benford สำหรับหลักแรก เมื่อความน่าจะเป็นที่หลักแรก $D_1$ มีค่าเท่ากับ $d_1$ อยู่ในรูปโดยประมาณ: $$P(D_1=d_1)=\log(d_1+1)-\log(d_1)=\log\left(1+\frac{1}{d_1}\right) \qquad d_1=1,\ldots,9$$
ตัวอย่าง
Pinkham พบว่ากฎของ Benford ไม่เปลี่ยนแปลงเมื่อปรับสเกล
benlaw <- function(d) log10(1 + 1 / d)
benlaw(1)
0.30103

สร้าง จำนวน Fibonacci 1000 ตัวแรก
fibnum <- numeric(1000)
fibnum[1] <- fibnum[2] <- 1
for (i in 3:1000) { fibnum[i] <- fibnum[i-1] + fibnum[i-2] }
head(fibnum)
1 1 2 3 5 8
และสร้าง กำลังของ 2 จำนวน 1000 ตัวแรก
pow2 <- 2^(1:1000)
head(pow2)
2 4 8 16 32 64
library(benford.analysis)
bfd.fib <- benford(fibnum,
number.of.digits = 1)
plot(bfd.fib)

library(benford.analysis)
bfd.pow2 <- benford(pow2,
number.of.digits = 1)
plot(bfd.pow2)

การตรวจจับการฉ้อโกงใน R