ZKIZ Archives


造假測試工具──Benford’s law Bittermelon 苦中作樂

http://bittermelon2009.blogspot.hk/2012/07/benfords-law.html
先和各位玩一個小遊戲,請到政府統計處網站,下載最新一期的《香港統計數字一覽2012》,看看第四頁的「主要統計指標」,那裡列出了20行統計數字(即「數值」一欄),由「1」到「9」計,當中那個字頭出現的次數最多?答案如下:「1」有6次,「2」有4次,「3」有5次,「4」至「6」有0次,「7」有1次,「8」有2次,最後「9」有2次。

好了,再隨意翻閱一下那部統計數字一覽,有沒有發覺,字頭低的數值,即數值的字頭是「1」、「2」或「3」出現的次數較其他字頭多?原來這個現象存在已久!

根據ISACA的一篇文章《Assessing Data Authenticity with Benford’s Law》所介紹,這個現象原來有以下一段故事。

於1881年,數學家Simon Newcomb發現用過的對數表的頭幾頁特別破爛,Newcomb想信這是因為研究人員時常翻閱那幾頁所致,而那幾頁所載的,正是字頭較低的數目字,例如「1」和「2」字頭的數字。Newcomb因此推斷字頭低的數值較字頭高的數值常用。其後他將此發現於《American Journal of Mathematics》發表。可是,由於缺乏實證,他的文章在當時沒有被重視。

到了1938年,當時身為通用電器實驗室的物理學家Frank Benford有同樣的發現,據說他當時對Simon Newcomb的發現並不知情。Benford相信對數表的頭幾頁特別破爛,原因不在研究人員對低字頭的數字有偏好,他相信因為大部份數字都是低字頭。為了證實他的想法,Benford從不同而且沒有關連的數據集(Datasets)收集了兩萬多個數值來做字頭分析,當中包括河流長度,美國各州份的人口數值,以至門牌號碼等等,之後他將結果寫成了一篇文章於Proceedings of the American Philosophical Society發表。Benford從分析中發現,若數值是關係到一個現象或者一宗事件(例如公司的銷售),其數值以「1」、「2」或「3」為字頭的機會較「7」、「8」或「9」大。

經過其他人的不斷努力,Benford’s Law應運而生。簡單來說,「1」字頭的出現比率最高,有30.1%,其他字頭卻很低,而且字頭愈大,出現比率愈低,詳細如下:

Digit
Benford’s expected frequency (%)
1
30.1
2
17.6
3
12.5
4
9.7
5
7.9
6
6.7
7
5.8
8
5.1
9
4.6

不過,世上不是所有數據集都能適用於Benford’s Law,例如隨機數值。另外,適用於Benford’s Law的數據集都有以下特點:

1) 數據集必需是數值。

2) 數據集內的數值必需有關連,而且與同一種現象或同一宗事件有關,例如股票市場的股票價格。

3) 數值不會有上限和下限,例如實施最低工資的地方,其工資數值就不適用了。

4) 數值必需是自然產生,而且不是發明或分配出來的,例如電話號碼就不適用了。

5) 數值最好是四位數或以上。

在實際應用方面,有人就曾經利用Benford’s Law來檢查數據或者賬目是否造假,甚至有人試過利用它來檢查2009年伊朗總統大選的選舉結果,發現有部份選區的結果有問題。

目前的兩大審計軟件ACL和IDEA均有Benford’s Law測試功能,Auditor只要將數據集輸進就能找出異常的交易。其實我也曾經試過採用此功能於實際的審核工作中,不過發覺並不容易操作。例如要檢視的數據集是否真的適合使用Benford’s Law,數值要怎樣再算「異常」等等。

除了維基外,香港專欄作家Nice Lee也曾寫過一篇關於Benford’s Law的好文章,有興趣的話,不妨按以上的連結看看。
PermaLink: https://articles.zkiz.com/?id=34842

Next Page

ZKIZ Archives @ 2019