使用(yòng)本福德定律甄别數據造假(Benford’s Law)

2017-03-13

數據造假的甄别在數據分析領域是一個熱門(mén)的話(huà)題,也(yě)是對(duì)數據分析師的一項挑戰。分析數據造假的方法有很(hěn)多種。我們在前面的系列文(wén)章中曾經介紹過兩種檢驗作(zuò)弊流量的方法。一種是根據曆史經驗及分布情況的多維度交叉檢驗,另一種是使用(yòng)随機森林(lín)模型根據已知(zhī)作(zuò)弊流量的特征對(duì)新流量進行分類及預測。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

本篇文(wén)章介紹一種神奇的數據檢驗方法,本福德定律(Benford's Law)。本福德定律是一種用(yòng)途廣泛的數據檢驗方法,在安然公司破産和(hé)伊朗大(dà)選選票甄别中都曾被使用(yòng)到(dào)。本福德定律通過自(zì)然生成的數字中1到(dào)9的使用(yòng)頻率對(duì)數據進行檢驗。如果你(nǐ)的數據具備一定規模,沒有人工(gōng)設定的最大(dà)值和(hé)最小(xiǎo)值,并且數據本身受人爲因素影響較小(xiǎo)。那麽就可以使用(yòng)本福德定律對(duì)數據進行檢驗,甄别數據是否經過人爲修飾。

本福德定律及公式

本福德定律中自(zì)然生成的數字首位爲1的概率爲30.10%,2的概率爲17.61%,依次遞減,首位爲9的概率僅爲4.58%。依據這(zhè)一期望概率值我們可以對(duì)數據進行檢驗。以下(xià)是本福德定律的計(jì)算(suàn)公式。通過這(zhè)一公式可以計(jì)算(suàn)出1-9中每個數字出現(xiàn)數據首位的概率。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

舉例來(lái)說,對(duì)于數字9下(xià)面的公式可以計(jì)算(suàn)出一組自(zì)然生成的數字中9出現(xiàn)在數字首位的概率是多少。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

我們使用(yòng)本福德定律公式逐一計(jì)算(suàn)了(le)數字1-9出現(xiàn)在首位的概率。以下(xià)是每個數字出現(xiàn)的概率值。後面會(huì)根據這(zhè)一期望的概率值對(duì)數據是否進行過人工(gōng)修改進行甄别。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

通過圖表可以更較直觀的看(kàn)到(dào)本福德定律中每個數字出現(xiàn)的頻率以及不同數字間的差異。與我們想象的不同,數字出現(xiàn)的頻率并不是均勻分布的。1出現(xiàn)的次數爲30.10%而9出現(xiàn)的次數僅爲4.58%。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網下(xià)面我們将使用(yòng)本福德定律對(duì)工(gōng)作(zuò)中常見的數據進行檢驗,甄别數據是否經過人爲修飾。

廣告展現(xiàn)量數據檢驗

首先檢驗一組廣告曝光數據。下(xià)面是某廣告一段時(shí)間的曝光量數據。我們将每條展現(xiàn)量數據的第一個數字提取出來(lái),通過本福德定律對(duì)這(zhè)組數據進行檢驗。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

第一步計(jì)算(suàn)展現(xiàn)量數據中數字1-9出現(xiàn)的次數。第二步計(jì)算(suàn)所有展現(xiàn)量數據的條目,展現(xiàn)量數據爲474條。第三步計(jì)算(suàn)數字1-9出現(xiàn)次數的頻率。第四步使用(yòng)本福德定律計(jì)算(suàn)出數字1-9出現(xiàn)頻率的期望值。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

将曝光量數據和(hé)本福德定律的期望值繪制到(dào)圖表中進行對(duì)比,可以發現(xiàn)曝光量數據首位數字出現(xiàn)的頻率與本福德定律整體上(shàng)基本一緻。在數字2,3和(hé)5上(shàng)略有差異。這(zhè)個柱狀圖能(néng)說明(míng)什(shén)麽?表明(míng)數據符合本福德定律?三個數據點上(shàng)的差異又說明(míng)什(shén)麽?數據中存在人爲修飾嗎?

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

單從(cóng)實際概覽值和(hé)圖表上(shàng)我們無法辨别數據是否經過人爲修飾。要準确的判斷數據是否爲自(zì)然生成還需要計(jì)算(suàn)兩個指标,分别爲KS值和(hé)截止值。然後對(duì)兩個指标進行對(duì)比。如果KS值低(dī)于截止值,那麽可以判定數據爲自(zì)然生成,沒有經過人工(gōng)修飾。否則就可能(néng)有造假的風(fēng)險。

KS值是數據的實際概率值與期望概率值差異的最大(dà)值,截止值是1.36除以數據條目數的平方根。我們對(duì)前面的數據表計(jì)算(suàn)KS值和(hé)截止值。第五步,計(jì)算(suàn)實際概率值與期望概率值的差異。這(zhè)裏我們取差異的絕對(duì)值以避免負數的産生。第六步,計(jì)算(suàn)K-S值,經過計(jì)算(suàn)K-S值爲0.043,也(yě)就是數字5出現(xiàn)頻率的差異。第七步,計(jì)算(suàn)截止值,這(zhè)裏的曝光數據共有474條,因此截止值爲0.053。第八步,對(duì)比K-S值與截止值,K-S值小(xiǎo)于截止值。因此數據屬于自(zì)然生成。沒有經過人爲修飾。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

廣告點擊量數據檢驗

按照前面的方法,我們對(duì)同一組廣告的點擊量數據進行檢驗。在下(xià)面的柱狀圖中,藍色爲本福德定律的期望概率值,綠色爲廣告點擊量的首位數字分布情況。可以發現(xiàn)在數字1,3和(hé)4上(shàng)實際值與期望值之間存在較大(dà)的差異。尤其是在數字3上(shàng)。但(dàn)僅根據這(zhè)幾個差異點我們還不能(néng)判斷數據是否經過人工(gōng)修飾。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

進一步計(jì)算(suàn)K-S值和(hé)截止值并進行對(duì)比。K-S值爲數據點間的最大(dà)差異值,這(zhè)裏是0.115。截止值經過計(jì)算(suàn)爲0.054。K-S值明(míng)顯大(dà)于截止值。因此可以判斷點擊量數據是經過人工(gōng)修飾的可能(néng),需要進一步進行檢驗。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

貸款金(jīn)額數據檢驗

除了(le)廣告數據以外(wài),本福德定律還可以在很(hěn)多場景下(xià)對(duì)數據進行檢驗。如貸款金(jīn)額的數據。下(xià)面是一組貸款金(jīn)額首位數字分布與本福德定律逾期分布的對(duì)比圖。兩者的趨勢一緻,差異也(yě)較小(xiǎo)。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

通過計(jì)算(suàn)K-S值和(hé)截止值并進行對(duì)比,K-S值0.019小(xiǎo)于截止值0.022。說明(míng)貸款金(jīn)額數據爲自(zì)然生成,不存在人工(gōng)修飾。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

Excel随機數檢驗

最後,我們人工(gōng)生成一組”假數據”,看(kàn)看(kàn)本福德定律的檢驗結果。這(zhè)裏使用(yòng)Excel的随機數函數生成100個随機數。并與本福德定律的期望分布進行對(duì)比。很(hěn)明(míng)顯,Excel生成的随機數在首位數字上(shàng)爲均勻分布。與本福德定律的期望分布相差甚遠。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

計(jì)算(suàn)并對(duì)比K-S值和(hé)截止值也(yě)再次證明(míng)了(le)均勻分布的數據爲人工(gōng)生成。K-S值0.201大(dà)于截止值0.116。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

 

本福德定律加強版

本福德定律除了(le)計(jì)算(suàn)首位數字出現(xiàn)的概率,還有個加強版,可以計(jì)算(suàn)第二位數字甚至第三位數字出現(xiàn)的概率,并通過這(zhè)些(xiē)這(zhè)些(xiē)期望值對(duì)數據進行更加深入和(hé)嚴格的檢驗。下(xià)面是計(jì)算(suàn)第二位數字出現(xiàn)概率的公式。d1表示第一位出現(xiàn)的數字,d2表示第二位出現(xiàn)的數字。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

如果我們要計(jì)算(suàn)第二位數字爲6的期望值,将數字6代入公式中,如下(xià)面截圖所示。分别計(jì)算(suàn)1-9每個數字與第二位數字6進行組合時(shí)的概率,再進行加總就是數字6作(zuò)爲第二位出現(xiàn)數字的期望概率值。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

在Excel中實際計(jì)算(suàn)下(xià),藍色部分爲首位數字和(hé)出現(xiàn)的概率。後面依次是第二位數字從(cóng)0-9依次與首位數字組合出現(xiàn)的概率值。我們按列進行彙總就是每個第二位數字出現(xiàn)的概率。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

再進一步還可以計(jì)算(suàn)第三位數字出現(xiàn)的概率。方法與計(jì)算(suàn)第二位數字出現(xiàn)的方法類似,隻是更爲負責一些(xiē)。下(xià)面是計(jì)算(suàn)公式。将0-9的10個數字分别與前兩位的各種數字組合在一起計(jì)算(suàn),然後把每種情況單一數字出現(xiàn)的概率進行彙總,就是這(zhè)個數字出現(xiàn)在第三位的期望值了(le)。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

以第三位數字是0爲例,藍色列表示第一位數字的值,由于第一位不能(néng)爲0,所以數字範圍爲1-9。第一行黑色背景爲第二位數字的值,從(cóng)0-9。計(jì)算(suàn)各種組合情況下(xià)第三位數字爲0的概率,并進行彙總。最終0.1018就是0作(zuò)爲第三位數字出現(xiàn)的概率值。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網

我們按照同樣的方法計(jì)算(suàn)了(le)0-9在第三位出現(xiàn)的概率,并與前面計(jì)算(suàn)的首位和(hé)第二位數字出現(xiàn)概率進行彙總生成了(le)下(xià)面的數據檢驗表。通過這(zhè)個概率分布表可以更加深入的對(duì)數據的真實性進行檢驗。

使用(yòng)本福德定律甄别數據造假(Benford’s Law)-數據分析網


聯系我們 | English | 開(kāi)發者中心

掃描二維碼關注我們
确 認