Benford's law, 一般機率學的書似乎都沒有提到,實務上卻是重要的,財稅官、審計員可能用它配合統計方法來審核帳目有沒有造假。
這個定律是說:在一堆大量,沒有特定限制的自然數字,其最高位數字 (1~9) 的出現頻率是以對數方式遞減的,也就是說
P[ X = k ] = log(1+1/k), k = 1, 2, ..., 9
式中 log 是以 10 為底的對數。以數學來說,喜歡把任何定律一般化,考慮 B 進位數字表示,領頭數字是 1~B-1, 則 Benford's law 是
P[ X = k ] = log_B(1+1/k), k = 1, 2,...,B-1.
這一定律的發現最早可推到 1881 年 ( https://towardsdatascience.com/what-is-benfords-law-and-why-is-it-important-for-data-science-312cb8b61048 ),美籍加拿大天文學家兼數學家 Simon Newcomb 發現,他在圖書館翻閱一本對數表時發現前面的書頁比後面的髒,這表示利用這本對數表的人用到對數時比較常碰到 1 開頭而較少碰到 9 開頭的數字,不管他從事哪個領域。(參見: Newcomb, S., “Note on the frequency of use of different digits in natural numbers”, American Journal of Math. 4, 39–40, 1881.) 1938 年美國物理學家 Frank Benford 重新發現這現象,在調研了超過兩萬項包括河流面積、化合物分子量、成本資料、地址門牌號、人口數字、物理常數等,都大致遵循這種他稱之為 "Law of Anomalous Numbers" 的定律 ( https://mdporter.github.io/SYS6018/other/(Benford)%20The%20Law%20of%20Anomalous%20Numbers.pdf ) 。 1995 年, Ted Hill 「證明」了這個定律。(參見: Ted Hill: The first digit phenomenon, American Scientist 86 (July-August 1998); 又見 T. Hill (1995) Base-invariance implies Benford's law, Proceedings of the American Mathematical Society 123, 887–895 及 T. Hill (1996) A statistical derivation of the significant-digit law, Statistical Science 10, 354–363. )
題外話:定律冠的人名常不是第一個發現者——這所謂 Stigler's Law, 由 Stigler 發表自稱這定律本身是由社會學家 Robert Merton 所發現,至少是暗示的。
顧名思義,Hill 是從「要求:所有正數的分布具 (scale) 不變性」這個假設「證明」了 Benford's law 的。如果換個角度,「要求:所有實數的分布具(平移)不變性」,結果將殊途同歸。其實不管是「所有正數的分布」或「所有實數的分布」,如果如上要求具不變性,將得不到真正的機率分布。不過,將結果疊加起來,是可以變成一個機率分布的。
首先,scale 不變性的意思是: Y 和 cY 具有相同分布,其中 c 是任意正數。設 X 的分布是連續型,有 p.d.f. f(x), 則 scale 不變性導致
f(y) = (1/c)f(y/c) for all y > 0, for any c > 0
欲符合上列關係式,則存在 c 使 f(y) = c/y, y > 0。若限制 1 ≦ y < 10,,則 c = 1/ln(10) 使 ∫_[1,10) f(y dy = 1, 符合機率的要求。而領先數字 X= k 表示 k ≦ Y < k+1,
P[ X = k ] = P[ k ≦ Y < k+1 ] = ∫_[k,k+1) c/y dy
= c ln((k+1)/k) = log(1+1/k), k = 1, 2, ..., 9.
其中 ln 是自然對數,log 是常用(以 10 為底)對數。
考慮 Z = log(Y) (或 ln(Y) ),則 Z 可以是任意實數。在此我們限定 0 ≦ Z < a, 平移變換改為
T(Z) = Z+c if Z+c < a, = Z+c-a if Z+c ≧ a; 0 ≦ c < a
而在 [0,a) 平移不變的 p.d.f. g(z), 0 ≦ z < a, 是均勻分布 g(z) = 1/a。對應到 Y = e^Z 而 1 ≦ Y < 10, 則 a = ln(10), Y 仍是前面導出的倒數分布,而其整數部分也就是領先數字則具有 Benford 分布。