99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀手把手教你數(shù)據(jù)造假-本福特定律和統(tǒng)計(jì)中的造假檢測
手把手教你數(shù)據(jù)造假-本福特定律和統(tǒng)計(jì)中的造假檢測
2022-02-16
收藏

作者:小伍哥

來源:小伍哥聊風(fēng)控

大家好,我是小伍哥,今天給大家分享一個(gè)好像有用,好像又沒啥用的奇奇怪怪的知識,風(fēng)控嘛,就是玩兒。

〇、“本福特定律”是什么?

“本福特定律”(Benford's law),也稱“本福特法則”,它說明一堆從實(shí)際生活得出的數(shù)據(jù)中,以1為首位數(shù)字的數(shù)(如12、135、1083首位數(shù)字均為1)的出現(xiàn)概率約為總數(shù)的三成,接近人們主觀直覺得出的期望值1/9的3倍。

推廣來說,越大的數(shù),以它為首位數(shù)字甚至是首幾位數(shù)字出現(xiàn)的概率就越低。在十進(jìn)制首位數(shù)字的出現(xiàn)概率中,1最高(30.1%),逐漸遞減,9最低(4.6%)。

在美國大選中,有人就使用了該定律質(zhì)疑拜登選票異常,在統(tǒng)計(jì)了特朗普和拜登在威斯康星州密爾沃基縣470多個(gè)選區(qū)的得票數(shù)首位數(shù)字后發(fā)現(xiàn),特朗普的這一曲線較為符合“本福特定律”的曲線,而拜登的曲線形狀則出現(xiàn)異常。拜登在包括威斯康星州密爾沃基、伊利諾伊州芝加哥和賓夕法尼亞州阿勒格尼的曲線均不滿足“本福特定律”,而與此同時(shí),特朗普在多個(gè)地區(qū)的曲線卻又正好滿足或基本滿足該定律。

一、基本概念

本福特定律(也稱為第一位數(shù)法或本福特分布)是一種概率分布,許多統(tǒng)計(jì)學(xué)的(但不是全部)數(shù)據(jù)集的第一個(gè)數(shù)字符合。例如,

15435 首位是 156 首位是 59001 首位是 9199 首位是 19 首位是 9

本福特定律通??捎米髌墼p性數(shù)據(jù)的指標(biāo),并可協(xié)助審計(jì)會計(jì)數(shù)據(jù)。本福特的分布是一種不均勻的分布,較小的數(shù)字比較大的數(shù)字有更大的出現(xiàn)j可能。

二、數(shù)位分布概率第1位數(shù)字出現(xiàn)概率10.30120.17630.12540.09750.07960.06770.05880.05190.046

三、本福特分布圖

四、本福特分布公式

六、本福特定律適用于哪類數(shù)據(jù)?

需要注意的是,“本福特定律”也有一定的使用條件。首先,數(shù)據(jù)樣本需要盡可能的多,至少要在3000個(gè)以上;其次,數(shù)據(jù)樣本跨度要大,比如人的身高就不滿足“本福特定律”,因?yàn)榇蠖鄶?shù)人身高在1米至2米這一區(qū)間;最后,數(shù)據(jù)樣本應(yīng)是自然的,不能有人為操控,例如手機(jī)號碼和郵政編碼不滿足“本福特定律”,因?yàn)檫@些都是1開頭或特定數(shù)字開頭。

也正是因?yàn)橛刑囟ㄊ褂脳l件,“本福特定律”可用于檢查各項(xiàng)數(shù)據(jù)是否存在造假行為,因?yàn)槿粲腥藶橐蛩赜绊憯?shù)據(jù),所得首位數(shù)字的概率及概率曲線圖將不符合“本福特定律”。

在大部分情況下,本福特定律可以適用于具有以下特征的數(shù)據(jù):

  • 具有通過來自多個(gè)分布的數(shù)字的數(shù)學(xué)組合形成的值的數(shù)據(jù)。
  • 具有多種數(shù)字的數(shù)據(jù),例如 具有數(shù)百,數(shù)千,數(shù)萬等數(shù)值的數(shù)據(jù)。
  • 數(shù)據(jù)集相當(dāng)大。
  • 數(shù)據(jù)是右傾斜的,即平均值大于中值,并且分布具有長的右尾而不是對稱的。
  • 數(shù)據(jù)沒有預(yù)定義的最大值或最小值(最小值為零)。

雖然有以上的限制,但實(shí)際上在會計(jì)中,符合上述特征的數(shù)據(jù)非常普遍。

七、會計(jì)欺詐檢測與取證分析

應(yīng)收賬款,應(yīng)付賬款,銷售和費(fèi)用數(shù)據(jù)均基于兩種類型的變量相乘的值,即價(jià)格和數(shù)量。單獨(dú),價(jià)格和數(shù)量不太可能符合本福特定律,但很可能會成倍增加。這種會計(jì)數(shù)據(jù)也可能是正確的。大公司的交易級會計(jì)數(shù)據(jù)幾乎總是會有大量的觀察結(jié)果。

如果某些會計(jì)數(shù)據(jù)預(yù)計(jì)符合本福特定律但不符合,則并不一定意味著數(shù)據(jù)是欺詐性的。然而,這將為進(jìn)一步調(diào)查提供充分的理由。

以下是如何對會計(jì)數(shù)據(jù)執(zhí)行本福特分布分析的一些示例。

1)大型企業(yè)的應(yīng)付賬款數(shù)據(jù)

分析顯示,大型企業(yè)的應(yīng)付幾款的數(shù)據(jù)的數(shù)字第一位數(shù)字中有很大比例的1。經(jīng)過仔細(xì)檢查后發(fā)現(xiàn),與上一個(gè)會計(jì)期間相比,還有更多的支付支票略高于1000美元。前一期的大部分支票金額低于100美元。

在一起財(cái)務(wù)調(diào)查中,負(fù)責(zé)的財(cái)務(wù)官隨后受到質(zhì)疑,他們回答稱他們決定匯總金額以試圖減少支票。低數(shù)字金額的合并是偏離本福特定律的常見解釋,使財(cái)務(wù)官的解釋變得合情合理。

經(jīng)過進(jìn)一步調(diào)查,據(jù)透露,該官員正在向他們創(chuàng)建的虛假殼公司寫支票。

2)本福特的分析應(yīng)用于組織的費(fèi)用數(shù)據(jù)

最初的本福特分析顯示,數(shù)據(jù)的第一位數(shù)字中“非常大”的比例非常大。經(jīng)過仔細(xì)檢查,特定費(fèi)用的許多條目達(dá)到45美元。發(fā)現(xiàn)費(fèi)用對于運(yùn)營組織至關(guān)重要,必須經(jīng)常支付。調(diào)查了這筆特殊費(fèi)用,然后被認(rèn)為是合法的。

然后將Benford的分析應(yīng)用于費(fèi)用數(shù)據(jù)的副本,但省略了特定的頻繁費(fèi)用。發(fā)現(xiàn)排除該特定費(fèi)用的數(shù)據(jù)與本福特的分布非常接近。

超越第一個(gè)數(shù)字推廣本福特定律通過查看第一個(gè)數(shù)字以外的數(shù)字,可以增強(qiáng)Benford的分析。

八、廣義本福特的分布表

本表的作用是表示分布規(guī)則還可以作用在不同的數(shù)位上。比如,0出現(xiàn)在第2位的概率是 11.97%,要高于平均值10%。

注意:由以上數(shù)據(jù)可以看出,在廣義分布中,數(shù)字的出現(xiàn)概率要比第一個(gè)數(shù)字更加均勻。

九、一般分布公式

根據(jù)上面的數(shù)據(jù),我們可以得到一般的分布公式

十、上市公司年報(bào)凈利潤數(shù)據(jù)驗(yàn)證本福特定律

我們用上市公司的利潤數(shù)據(jù)來驗(yàn)證下本福特定律。

我們采用tushare接口獲取2019、2020年年報(bào)(第4季度)數(shù)據(jù),取其中的凈利潤數(shù)據(jù),然后我們只考慮凈利潤為正的情況。

xxxxxxxxxxbr

# 驗(yàn)證本福特定律import tushare as ts # 股票數(shù)據(jù)獲取的一個(gè)包import mathimport matplotlib.pyplot as pltimport pandas as pdfrom functools import reducefrom pylab import *# 這一句讓pyplot支持中文顯示mpl.rcParams['font.sans-serif'] = ['SimHei']# 獲取首位的函數(shù)def firstDigital(x): x= round(x) while x >= 10: x //= 10 return x# 首位概率累加def addDigit(lst, digit): lst[digit-1]+=1 return lst# 理論值:每位概率理論值用于對比th_freq=[math.log((x+1)/x, 10) for x in range(1,10)]#分別獲得2019,2020年報(bào)數(shù)據(jù)df= ts.get_report_data(2019, 4)# 只取凈利潤>0的數(shù)據(jù),首先進(jìn)行次數(shù)統(tǒng)計(jì)freq= reduce(addDigit, map(firstDigital, filter(lambda x:x>0, df['net_profits'])), [0]*9)# 再計(jì)算實(shí)際概率pr_freq= [x/sum(freq) for x in freq]print(th_freq)print(pr_freq)# 作圖plt.title('用上市公司2019年報(bào)凈利潤數(shù)據(jù)驗(yàn)證本福特定律')plt.xlabel("首位數(shù)字")plt.ylabel("概率")plt.xticks(range(9), range(1,10))plt.plot(pr_freq,"r-",linewidth=2, label= '實(shí)際值')plt.plot(pr_freq, "go", markersize=5)plt.plot(th_freq,"b-",linewidth=1, label= '理論值')plt.grid(True)plt.legend()plt.show()

xxxxxxxxxxbr # 驗(yàn)證本福特定律brimport tushare as ts # 股票數(shù)據(jù)獲取的一個(gè)包brimport mathbrimport matplotlib.pyplot as pltbrimport pandas as pdbrfrom functools import reducebrfrom pylab import *br# 這一句讓pyplot支持中文顯示brmpl.rcParams['font.sans-serif'] = ['SimHei']br# 獲取首位的函數(shù)brdef firstDigital(x):br x= round(x)br while x >= 10:br x //= 10br return xbr# 首位概率累加brdef addDigit(lst, digit):br lst[digit-1]+=1br return lstbr# 理論值:每位概率理論值用于對比brth_freq=[math.log((x+1)/x, 10) for x in range(1,10)]br#分別獲得2019,2020年報(bào)數(shù)據(jù)brdf= ts.get_report_data(2019, 4)br# 只取凈利潤>0的數(shù)據(jù),首先進(jìn)行次數(shù)統(tǒng)計(jì)brfreq= reduce(addDigit, map(firstDigital, filter(lambda x:x>0, df['net_profits'])), [0]*9)br# 再計(jì)算實(shí)際概率brpr_freq= [x/sum(freq) for x in freq]brprint(th_freq)brprint(pr_freq)br# 作圖brplt.title('用上市公司2019年報(bào)凈利潤數(shù)據(jù)驗(yàn)證本福特定律')brplt.xlabel("首位數(shù)字")brplt.ylabel("概率")brplt.xticks(range(9), range(1,10))brplt.plot(pr_freq,"r-",linewidth=2, label= '實(shí)際值')brplt.plot(pr_freq, "go", markersize=5)brplt.plot(th_freq,"b-",linewidth=1, label= '理論值')brplt.grid(True)brplt.legend()brplt.show()

xxxxxxxxxxbr br

從圖形上看,兩者擬合度還是比較高的。據(jù)說有些上市公司數(shù)據(jù)造假就是被用本福特定律查出來的。所以不認(rèn)真學(xué)習(xí)的話,造假都造不好。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }