AO现场审计实施系统内嵌Benford法则分析功能的方法

30.11.2016  13:34

知道吗?在实际生活工作中,自然数1~9的出现概率并不是相同,除数字1始终占据约三分之一的出现频率外,数字2的出现频率为17.6%,3出现的频率为12.5%,依次递减,9的出现频率是4.6%。1938年,物理学家法兰克·本福特发现了这一现象,并通过数据验证了它。Benford法则,即F(d) = log[1 + (1/d)],此公式中F代表频率,D代表待求证数字。利用Benford法则进行审计分析对于数量多、个体数值较为平均的审计数据样本,是一个较好的补充。

近期常州市审计局在实施的审计项目中通过ASL语言和自动审计模块,将Benford法则分析功能集成至AO现场审计实施系统,以人机交互和图表展现的方式简化Benford法则分析功能的实现,降低审计人员实施Benford法则分析的门槛,使得审计人员能更直观、便捷、高效地进行该项审计活动。

Benford法则应用于审计疑点发现的现实意义

传统的审计分析方法在使用中过滤了大量的详细交易信息,而这些信息常常隐含了舞弊活动。Benford法则是数据式审计模式下,基于详细交易数据的分析性复核方法,这种方法通过分析数据的统计规律发现异常,从而定位异常,以便后续审计查证工作。Benford法则对审计人员的审计专业经验和专业判断依赖程度不高,非常适合普通审计人员使用。运用Benford法则进行分析和检测,可以提高审计数据的质量,使有效审查数据量大大缩小,提高审计工作效率,在一定程度上降低审计风险。

数据准备

以“某事业单位财务帐套凭证表(base)”为例,对表中“借”字段进行分析。需事先准备“标准概率表(sheet)”作为Benford法则分析过程的参照标准。“标准概率表(sheet)”是根据美国国家标准和技术学院(NIST)给出的Benford法则定义“对于许多种类的统计数据,其首位数字是数字d的概率为lg(1+1/d),d=(1,2,3,..9)”,事先计算出的1至9999在自然界中的数字分布频率,其中(a)字段是1至9999的数值,(b)字段是数值对应的分布频率。

实施步骤

(一)对被审计数据进行分析,初步判断该数据是否符合Benford法则的分析条件,选择待分析的目标字段。

(二)编写审计方法,对被审计数据进行整理,形成审计分析中间表。该步骤,需对本方法涉及的测试数据“某事业单位财务帐套凭证表(base)”的“借”字段去0,去NULL值,为便于后续步骤取数值位,将“借”字段所有财务发生额数据乘以100,去除小数点。本步骤涉及的ASL语句如下:

var

sqlt;

begin

ExecuteUpdate( 'ALTER TABLE base add COLUMN Id COUNTER (1, 1)' );

executeupdate('alter table base alter column id integer');

createtemptable( 'tmp', 'SELECT base.ID, abs(base.借)*100 AS j FROM base WHERE ((Not (base.借) Is Null And (base.借)<>0))' );

createtemptable('yd','select top 1 * from tmp');

createtemptable('blt','select top 1 id as num,j as bl from tmp');

executeupdate('alter table blt add column bz double');

executeupdate('alter table blt add column bfb double');

end.

(三)对测试数据进行首位有效数字Benford法则的符合性测试,根据输出柱状图,初步发现测试线索和重点,并可根据需要,将计算比率与标准比率的差异率输出至“未落实疑点”。该步骤具体操作和示例如下:

①执行方法后,弹出输入框,如下图所示,第一阶段先对首位数值1~9进行符合性测试,这边输入占位符“_”。

②输入“_”后,点击“确定”后,输出首位数值1~9的计算概率与标准概率对比柱状图,如下图所示,通过观察,可以看出首位数字为“1、5、7”的数据与标准标准概率差异较大。同时,审计人员也可根据自身习惯,将图表显示类型调整为:线性图、饼图和散列图。

③关闭柱状图显示后,弹出输入框,如下图,审计人员根据实际情况,选择是否输出1~9的计算概率与标准概率的差异率表至“未落实疑点”。

④本例,输入“_”占位符后,点击“确定”后,输出首位数值1~9的计算概率与标准概率的差异率表至“未落实疑点”。

(四)重复(三)步骤,对上一步骤了解的测试重点和线索,通过输入不同参数进行进一步挖掘。如上一步骤发现首位数字为“1、5、7”的数据与标准标准概率差异较大。以重点测试以5为首的头两位数字为例,输入参数为“5_”可以输出首两位数值50~59的数据的计算概率与标准概率对比柱状图。

需要介绍的是,本步骤在对发现的线索输出计算比率与标准比率的差异率外,还同时输出疑点记录至“未落实疑点”。

(五)在(四)步骤的基础上,重复执行,对上一步骤了解的测试重点和线索,通过输入上不同参数进行进一步挖掘。本方法设计可分析之自左向右4位数字的数据。根据直观判断或差异率的精确判断,输出疑点记录至“未落实疑点”。

(三)至(五)步骤涉及的ASL语言如下:

var

num,bl,sqlt,sqlnum,eofnum;

begin

executeupdate('delete from blt');

executeupdate('delete from yd');

num:=newread('输入疑点数字,用符号“_”占位,例 _,2_,4__');

sqlt:=-1;

sqlnum:=-1;

bl:=0; sqlnum:=createq('select cstr(a) as a1 from sheet where a like "'+num+'"',sqlnum); eofnum:=qeof(sqlnum);

while eofnum<>1 do

begin

num:=qfdvalue(sqlnum,'a1')+'%';

sqlt:=createq('select cstr((select count(1) from tmp where j like "'+num+'")/count(1)) as bl from tmp',sqlt);

ExecuteUpdate('insert into blt (num,bl) values('+qfdvalue(sqlnum,'a1')+','+qfdvalue(sqlt,'bl')+')');

eofnum:=qmov(sqlnum,1); eofnum:=qeof(sqlnum);

end;

executeupdate('update blt inner join sheet on blt.num=sheet.a set blt.bz=sheet.b');

executeupdate('update blt set bfb=abs(bl-bz)');

sqlt:=createq('SELECT num, bl, bz FROM blt',sqlt);

oputchart(sqlt,'num','bl,clred;bz,clgreen');

sqlt:=createq('select num as 数字,bl as 计算概率,bz as 标准概率,bfb as 差异率 from blt order by bfb desc',sqlt); eofnum:=qeof(sqlt);

while eofnum<>1 do

begin

addtransrslt(sqlt,'比例记录');

eofnum:=qmov(sqlt,1); eofnum:=qeof(sqlt);

end;

transbatch(sqlt,'比例');

num:=newread('输入需要放到疑点库中的开头数字,不需要则输入0');

if num>0 then

begin

ExecuteUpdate('insert into yd select * from tmp where j like "'+num+'%"');

sqlt:=createq('SELECT 年,月,日,摘要,凭证号,借 FROM base INNER JOIN yd ON base.Id = yd.ID',sqlt);

eofnum:=qeof(sqlt);

while eofnum<>1 do

begin

addtransrslt(sqlt,'疑点记录');

eofnum:=qmov(sqlt,1); eofnum:=qeof(sqlt);

end;

TransBatch(sqlt,'疑点');

end;

end.

(六)对输出至“未落实疑点”的数据进行分析。在必要的情况下对照原始凭证,分析出现的异常情况,落实发现的问题。

延伸建议

本文介绍的技术方法适用于符合Benford法则的适用条件的一切财务数据和业务数据。此外,利用Benford法则对电子数据进行分析和检测后,被检测出来的异常数据是否真正存在问题,还需要根据审阅法、复算法、函证法等审计常规技术进一步确认。

最后,Benford法则不是一个万用的检测器,不能够期待一种方法能够解决所有问题。但是,这种方法和许多已有的审计方法一样,如果应用得当,能够在提高审计效率的同时很好地控制审计数据质量,降低审计风险。(周建东)