财务舞弊(本福特——KS验证)

本福特——KS验证

 

       Amiram1(2015)发表文章Financial statement errors: evidence from the distributional properties of financial statement numbers, 其在文章中成功的将本福特定律应用于美国上市公司的年报数据,发现1、在同一年中,重修订的数据比原始谎报数据更符合本福特定律;2、统计越偏离本福特定律,该上市公司的持续盈利能力越低。文章中利用Kolmogorov–Smirnov(KS) 统计与Mean Absolute Deviation (MAD)两种检验方式来度量实际分布概率与本福特定律的偏差程度, KS的计算公式为:

KS=Max(|AD1−ED1|,|(AD1+AD2)−(ED1+ED2)|,…,|(AD1+AD2+…+AD9)−(ED1+ED2+…+ED9)|)

其中AD是统计数据的真实分布,ED为该数字在本福特定律中的期望概率。可以利用KS来检验该分布适合本福特定律,在5%的水平下,检验值为 1.36/srqt§,其中P为总的统计样本个数。如果该样本的KS值小于该检验值,可以认为符合本福特定律。

 

 

一、代码

 

 1 from WindPy import w
 2 from datetime import *
 3 import math
 4 from scipy import stats
 5 
 6 #本福特定律中1-9的分布概率
 7 exp = [0.301, 0.1761, 0.1249, 0.0969, 0.0792, 0.0669, 0.058, 0.0512, 0.0458]
 8 
 9 #启动wind
10 w.start()
11 
12 #这里按wind取数规则,将代码和日期设为变量
13 list=["600000.SH"]
14 rptDate="unit=1;rptDate=20161231;rptType=1"
15 
16 def count_num(x):
17     #取第一位数,并且按1-9返回出现次数的列表
18     numC = [0] * 9
19     for i in x.Data:
20         if not math.isnan(i[0]):
21              #wind空数据显示为"nan"
22             num=int(str(abs(i[0]))[0])
23             if num ==1:
24                 numC[0]+=1
25             elif num==2:
26                 numC[1]+=1
27             elif num==3:
28                 numC[2]+=1
29             elif num==4:
30                 numC[3]+=1
31             elif num==5:
32                 numC[4]+=1
33             elif num==6:
34                 numC[5]+=1
35             elif num==7:
36                 numC[6]+=1
37             elif num==8:
38                 numC[7]+=1
39             elif num==9:
40                 numC[8]+=1
41     return numC
42 
43 def ks(numC):
44     #Kolmogorov–Smirnov(KS) 统计
45     ks_value=0
46     numT = sum(numC)
47     p=1.36/(numT**0.5)
48     for j in range(0, 9):
49         numC[j] = numC[j] / numT
50     ks = [0] * 9
51     for i in range(0, 9):
52         a = 0
53         b = 0
54         for j in range(0, i + 1):
55             a = a + numC[j]
56             b = b + exp[j]
57         ks[i] = abs(a - b)
58     Max=max(ks)
59     if Max>p:
60         #如果不符合ks,返回1,符合返回0
61        ks_value=1
62     return  ks_value

 

二、验证

1.舞弊公司

代码

公司名称

备注

300267.SZ

尔康

系统未报错

600074.SH

保千里

系统报错

300372.SZ

欣泰

系统报错

002323.SZ

雅百特

系统未报错

600654.SH

中安消

系统未报错

 

2.上证50公司

系统均未报错。

 

3.结论

符合本福特—KS验证,不一定没有问题。但不符合本福特—KS验证,应该存在问题。

转载于:https://www.cnblogs.com/L736/p/8523241.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值