Rで学ぶ不正検知
Bart Baesens
Professor Data Science at KU Leuven
1000件以上の数値で、複数の桁数にまたがるものが望ましい。
データがベンフォードの法則に従わない場合があることに注意してください。
データセットが上位2桁に関するベンフォードの法則を満たす場合、上位2桁 $D_1D_2$ が $d_1d_2$ に等しい確率は概ね次のとおりです:
$$P(D_1D_2=d_1d_2)=\log\left(1+\frac{1}{d_1d_2}\right) \qquad d_1d_2\in [10, 11, ..., 98, 99]$$
benlaw <- function(d) log10(1 + 1 / d)
benlaw(12)
0.03476211
このテストは最初の1桁のテストよりも信頼性が高く、不正検出で最も頻繁に使用されます。
bfd.cen <- benford(census.2009$pop.2009, number.of.digits = 2)
plot(bfd.cen)

expenses には1000件の精算データが含まれます。benford.analysis の関数を引き続き使用します。bfd1.exp <- benford(expenses, number.of.digits = 1)
plot(bfd1.exp)

bfd2.exp <- benford(expenses, number.of.digits = 2)
plot(bfd2.exp)

Rで学ぶ不正検知