背景:抽样之外还有全量
货币单元抽样(PPS)是审计标配,但它本质是"用样本推断总体",对低频大额舞弊、跨科目串通往往力不从心。当企业把序时账、余额表整库导入后,审计师其实可以换个思路:直接在全量数据上跑异常检测。本文对比三种在审计场景落得过的方法——统计离群、关联规则、图异常——讲清各自的适用边界。
三种方法对比
| 维度 | 统计离群(Outlier) | 关联规则(Association) | 图异常(Graph) |
|---|---|---|---|
| 数据形态 | 数值型(金额/数量) | 事务型(科目/对手/摘要) | 关系型(实体-交易网络) |
| 核心思路 | 偏离均值/分位即可疑 | 共现偏离预期即可疑 | 结构上偏离社区即可疑 |
| 能发现的舞弊 | 虚增收入、异常大额 | 科目窜用、周期异常 | 关联方闭环、资金回流 |
| 可解释性 | 强(离群多少 sigma) | 中(支持度/置信度) | 弱(需可视化辅助) |
| 数据要求 | 单表即可 | 需维度标签 | 需构建实体关系 |
| 计算成本 | 低 | 中 | 高 |
| 误报控制 | 阈值难调 | 规则多易爆炸 | 依赖构图质量 |
统计离群:先做初筛
对金额列做 z-score 或 IQR 检测,几行 pandas 就能跑完。它适合做初筛:把偏离 3σ 的凭证捞出来人工看。代价是正态分布假设在财务数据上常不成立(收入呈长尾),且对"刚好卡在阈值下"的拆分舞弊无效。实务建议用分位数法(如超过 99 分位)而非均值法,并对科目分层后再检测,避免把正常大额资本支出误杀。
关联规则:抓"不该一起出现"的模式
把每笔凭证的(科目、对方、摘要关键词、时段)当作一个事务,用 Apriori 算频繁项集。正常模式下"差旅费+机票"频繁共现,若出现"差旅费+大额咨询费"且置信度异常,就值得看。它能发现科目窜用、费用挂错。代价是组合爆炸——维度一多规则数指数涨,必须靠领域知识先剪枝(限定关注的科目对)。
图异常:看穿关联方闭环
把"公司-供应商-客户-自然人"建图,交易是边。资金在关联方间兜一圈回到起点(闭环),或某自然人同时是多家供应商实控人,这类结构靠表透视很难看,靠图算法(如社区发现、环路检测)能直接定位。代价是构图质量决定一切:实体归一化("深圳市XX"和"深圳XX"是否同一家)做不好,图就是一锅粥。
落地取舍
- 数据刚接入、只想快速看一眼:先统计离群。
- 关注费用合规、科目窜用:上关联规则,配合人工剪枝。
- 怀疑关联方舞弊、资金回流:投入图异常,但先把实体归一化做扎实。
不少智能审计工具(如审小匠)把这三类做成可配置的检查项,内置 30+ 项检查规则的组合,审计师按需开关。但无论哪种方法,输出都是"疑点清单"而非"结论"——最终是否错报,仍要人工取证确认。
小结
全量异常检测不是替代抽样,而是抽样之上的第二层网。统计离群快、关联规则准、图异常深,三者互补。选型的依据是你想抓哪类风险,以及手里的数据干净到什么程度。