一、本福特定律
做假账是很多公司,尤其是上市公司的主要工作,为了对付假账,人们想了很多办法。其中一个就是利用奔福德定律来检查各种数据是否有造假。
本福特定律是说一堆从实际生活得出的数据中,以1为首位数字的数的出现机率约为总数的三成,接近期望值1/9的3倍,越大的数,以它为首几位的数出现的机率就越低。本福特定律说明在b进位制中,以数n起头的数出现的机率为logb(n
1) − logb(n)
。值得一提的是,本福特定律满足尺度不不变性,即如果我们换一套单位制,本福特定律仍然成立。本福特定律不但适用于个位数字,连多位的数也可用。在十进制首位数字的出现机率(%,小数点后一个位):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%。
1935年,美国的一位叫做本福特的物理学家在图书馆翻阅对数表时发现,对数表的头几页比后面的页更脏一些,这说明头几页在平时被更多的人翻阅。本福特再进一步研究后发现,只要数据的样本足够多,数据中以1为开头的数字出现的频率并不是1/9,而是30.1%。而以2为首的数字出现的频率是17.6%,往后出现频率依次减少,9的出现频率最低,只有4.6%。
本福特开始对其它数字进行调查,发现各种完全不相同的数据,比如人口、物理和化学常数、棒球统计表以及斐波纳契数列数字中,均有这个定律的身影。就是只要是由度量单位制获得的数据都符合这一定律,它的适用范围异常的广泛,几乎所有日常生活中没有人为规则的统计数据都满足这个定律。另一方面,任意获得的和受限数据通常都不符合本福特定律。比如,彩票数字、电话号码、汽油价格、日期和一组人的体重或者身高数据是比较随意的,或者是任意指定的,并不是由度量单位制获得的。
1961年,一位美国科学家提出,本福特定律其实是数字累加造成的现象,即使没有单位的数字。比如,假设股票市场上的指数一开始是1000点,并以每年10%的程度上升,那么要用7年多时间,这个指数才能从1000点上升到2000点的水平;而由2000点上升到3000点只需要4年多时间;但是,如果要让指数从10000点上升到20000点,还需要等7年多的时间。因此我们看到,以1为开头的指数数据比以其他数字打头的指数数据要高很多。
2001年,美国最大的能源交易商安然公司宣布破产,当时传出了该公司高层管理人员涉嫌做假账的传闻。事后人们发现,安然公司在2001年到2002年所公布的每股盈利数字就不符合本福特定律,这证明了安然的高层领导确实改动过这些数据。
二、实现思路
如果不用计算机实现基于本福特定律的上市公司报表真假检验,就只能是下载每家上市公司从上市到现在的每年财务报表(3张表,资产负债表,利润表,现金流量表),然后手工记录每个数字的首数字是多少,然后统计每家公司的财务报表的首数字的分布概率。沪深3000多家公司,平均十年的财务报表,将近3万个报表,统计量太大,必须用计算机语言来实现自动取数和统计计算。大致思路如下:
(1)获取沪深两市所有的股票编号和名称。
(2)基于股票编号,到网站(我选择网易股票)上抓取每年的财务数据,并统计每家公司的财务报表首数字的分布概率。第二步是关键,可以细化为:
2.1 统计资产负债表的首数字分布情况
2.1.1 按照股票编号到网站上抓取各年的资产负债表数据
2.1.2
处理每个单元格的数据,如果是数字,绝对值大于1,取首位,绝对值小于1,乘以1亿后,取首位。
2.1.3
按照首位数字的情况,将对应的统计变量加一。然后循环到2.1.2直到结束。
2.2 统计利润表的首数字分布情况
2.3 统计现金流量表的首数字分布情况
2.4 合并统计3张表的首数字分布情况
(3)输出分布概率到excel文件。
加载中,请稍候......