数据分析与异常检测
SkillDatabases & dataApplies data analytics techniques to identify anomalous transactions and potential fraud, covering Benford's Law, trend analysis, duplicate detection, and related-party screening
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the 数据分析与异常检测 skill
What this skill tells your AI
The instructions your AI receives, as published by guoliang1114-boop/ariaai in skills/data-analytics-anomaly-detection/SKILL.md and read by ahel’s review.
When To Use
- 审计中需要对大额交易数据集执行分析性程序时
- 需要识别潜在舞弊风险或异常交易时
- 客户数据量大,传统抽样方法可能遗漏异常时
- 需要评估财务数据的合理性和一致性时
- 关联方交易筛查和利益冲突识别时
- 持续审计或监控审计中需要自动化异常检测时
Tools
bash- 运行Python/R数据分析脚本write- 创建分析脚本和发现报告read- 读取交易数据文件(CSV、Excel)grep- 搜索数据文件中的特定模式
Framework
1. 本福特定律 (Benford's Law)
参照 Nigrini, M.J. (2012) "Benford's Law: Applications for Forensic Accounting, Auditing, and Fraud Detection"
本特定律预测自然数据集中首位数字的频率分布:
| 首位数字 | 预期频率 | 预期比例 |
|---|---|---|
| 1 | 30.1% | 0.301 |
| 2 | 17.6% | 0.176 |
| 3 | 12.5% | 0.125 |
| 4 | 9.7% | 0.097 |
| 5 | 7.9% | 0.079 |
| 6 | 6.7% | 0.067 |
| 7 | 5.8% | 0.058 |
| 8 | 5.1% | 0.051 |
| 9 | 4.6% | 0.046 |
适用条件:
- 数据集规模 ≥ 500条记录(理想 ≥ 1,000条)
- 数据跨越多个数量级(如1-10,000范围)
- 数据为自然生成而非人为设定(如价格表不适用)
- 不适用于受限数据(如工资在特定范围内)
统计检验方法:
- Z值检验: Z = (观测比例 - 预期比例) / 标准误差
- |Z| > 1.96 表示在95%置信水平下显著偏离
- |Z| > 2.58 表示在99%置信水平下显著偏离
- Chi-Square检验: χ² = Σ[(观测频次-预期频次)²/预期频次]
- df=8, χ²临界值(0.05) = 15.51
- MAD (Mean Absolute Deviation):
- MAD ≤ 0.006: 接近一致性
- 0.006 < MAD ≤ 0.012: 可接受
- 0.012 < MAD ≤ 0.015: 边缘可接受
- MAD > 0.015: 不可接受
2. 趋势分析 (Trend Analysis)
参照 ISA 520 Analytical Procedures 及 AICPA AU-C 520:
水平分析 (Horizontal Analysis):
- 同比分析 (YoY): (本期 - 上期) / 上期 × 100%
- 环比分析 (MoM/QoQ): 连续期间变动分析
- 异常阈值: 变动超过 ±10% 或 ±2个标准差需调查
垂直分析 (Vertical Analysis):
- 各科目占收入/总资产的百分比
- 与行业基准对比(参考公开行业数据)
- 结构异常阈值: 占比变动超过 ±3个百分点
趋势断裂检测:
- 移动平均偏离: 实际值偏离3期/6期移动平均超过2σ
- 线性回归残差: 残差超过 ±2σ的观测点
- 季节性调整后异常: 剔除季节性因素后的异常波动
关键比率分析:
- 毛利率波动: 与行业均值偏离超过 ±5个百分点
- 应收账款周转天数: 与行业均值偏离超过 ±15天
- 存货周转天数: 与行业均值偏离超过 ±20天
- 关联方往来余额占比异常增长
3. 重复检测 (Duplicate Detection)
完全重复检测:
- 金额+日期+供应商完全一致的发票
- 金额+日期+摘要完全一致的日记账分录
- 金额+银行账号完全一致的付款记录
近似重复检测:
- 金额相同(±0.01) + 日期相近(±3天) + 供应商不同
- 金额相同 + 供应商相同 + 发票号相似(编辑距离≤2)
- 反向分录: 同一科目金额相同方向相反,间隔≤30天
阈值设置:
- 完全匹配: 100%精确匹配
- 近似匹配: 金额容差±0.01,日期容差±3天
- 金额舍入: 金额为整百/整千的交易比例(正常应<10%)
4. 关联方筛查 (Related Party Screening)
参照 ISA 550 Related Parties 及 SEC Regulation S-K Item 404:
地址匹配:
- 员工地址与供应商地址匹配
- 供应商之间地址重叠
- PO Box或虚拟地址识别
电话/邮箱匹配:
- 供应商联系信息与员工信息匹配
- 多个供应商使用相同电话或邮箱
名称相似度:
- 供应商名称与已知关联方名称相似(编辑距离/Levenshtein距离)
- 缩写、别名、曾用名匹配
- 中英文名称交叉匹配
交易模式筛查:
- 无商业实质的大额交易(金额大、频率低)
- 交易金额恰好在审批限额以下
- 新成立供应商短期内大额交易
- 年末集中交易或跨期交易
5. 异常值检测 (Outlier Detection)
统计方法:
- Z-Score方法: |Z| > 3 的观测值为异常
- IQR方法: < Q1 - 1.5×IQR 或 > Q3 + 1.5×IQR
- 聚类分析: K-means或DBSCAN识别不属于任何正常群组的交易
- 时间序列异常: 孤立森林(Isolation Forest)或ARIMA残差分析
业务规则:
- 单笔交易金额超过该科目月均金额的3倍
- 非工作时间(周末/节假日)录入的交易
- 月末最后2天或年末最后1周的大额调整分录
- 同一用户短时间内大量创建或修改交易
Workflow
Step 1: 数据获取与准备
- 从客户系统导出完整交易数据(GL、AP、AR、Bank)
- 验证数据完整性(记录数核对、金额合计与TB比对)
- 清洗数据(处理空值、标准化格式、统一币种)
- 建立数据字典,记录字段含义和数据类型
- 备份原始数据,确保可追溯
Step 2: 选择分析方法
- 根据审计目标选择适用的分析技术
- 评估数据是否满足方法的前提条件
- 确定异常阈值和判断标准
- 记录方法选择的依据
Step 3: 执行分析
- 按选定方法执行数据分析
- 记录分析过程和中间结果
- 标记异常发现
- 交叉验证不同方法的结果
Step 4: 异常调查
- 对标记的异常逐一评估
- 排除已知合理原因(如正常业务波动)
- 对无法解释的异常获取额外证据
- 与客户讨论确认
Step 5: 汇总发现
- 按风险等级分类发现
- 评估对审计意见的影响
- 编制数据分析发现报告
Output Format
数据分析发现报告模板
============================================================
数据分析发现报告 (Data Analytics Findings Report)
============================================================
客户名称: [客户名称]
报告期间: [YYYY年MM月DD日 至 YYYY年MM月DD日]
编制人: [姓名] | 编制日期: [YYYY-MM-DD]
复核人: [姓名] | 复核日期: [YYYY-MM-DD]
索引号: [索引号]
============================================================
一、分析概述
------------------------------------------------------------
分析目标: [本次数据分析的审计目标]
数据来源: [系统名称、导出日期、记录数、金额范围]
分析方法: [使用的方法列表]
分析期间: [数据覆盖的时间范围]
数据质量评估:
- 总记录数: [N]
- 有效记录数: [N] ([占比%])
- 缺失/异常记录: [N] ([占比%])
- 数据完整性验证: 与TB核对 [一致/差异¥X]
二、本福特定律分析
------------------------------------------------------------
分析对象: [例: 应付账款发票金额首位数字分布]
样本量: [N]条记录
金额范围: ¥[min] - ¥[max]
数字 | 观测频次 | 观测比例 | 预期比例 | 偏差 | Z值 | 标记
1 | [N] | [%] | 30.1% | [±%] | [Z] | [*/**/-]
2 | [N] | [%] | 17.6% | [±%] | [Z] |
3 | [N] | [%] | 12.5% | [±%] | [Z] |
4 | [N] | [%] | 9.7% | [±%] | [Z] |
5 | [N] | [%] | 7.9% | [±%] | [Z] |
6 | [N] | [%] | 6.7% | [±%] | [Z] |
7 | [N] | [%] | 5.8% | [±%] | [Z] |
8 | [N] | [%] | 5.1% | [±%] | [Z] |
9 | [N] | [%] | 4.6% | [±%] | [Z] |
统计检验结果:
- Chi-Square: [值] (临界值15.51, df=8, α=0.05) → [通过/未通过]
- MAD: [值] → [一致性/可接受/边缘/不可接受]
注: * 表示95%置信水平显著偏离, ** 表示99%置信水平显著偏离
偏离分析:
[对显著偏离的首位数字,分析其可能原因,列出相关交易]
三、趋势分析
------------------------------------------------------------
3.1 关键科目变动分析
科目 | 上期金额 | 本期金额 | 变动额 | 变动率 | 阈值 | 标记
营业收入 | ¥[M] | ¥[M] | ¥[M] | [%] | ±10% | [-/!]
营业成本 | ¥[M] | ¥[M] | ¥[M] | [%] | ±10% |
管理费用 | ¥[M] | ¥[M] | ¥[M] | [%] | ±10% | [!]
应收账款 | ¥[M] | ¥[M] | ¥[M] | [%] | ±10% | [!]
应付账款 | ¥[M] | ¥[M] | ¥[M] | [%] | ±10% |
标记说明: [-] 无异常, [!] 超过阈值需调查
3.2 异常变动调查
异常科目: [名称]
变动描述: [变动率及方向]
客户解释: [管理层的解释]
审计验证: [获取的佐证证据]
结论: [解释是否合理,是否需要调整]
3.3 毛利率分析
期间 | 收入 | 成本 | 毛利 | 毛利率 | 行业均值 | 偏离
Q1 2024 | ¥[M] | ¥[M] | ¥[M] | [%] | [%] | [±pp]
Q2 2024 | ¥[M] | ¥[M] | ¥[M] | [%] | [%] | [±pp]
Q3 2024 | ¥[M] | ¥[M] | ¥[M] | [%] | [%] | [±pp]
Q4 2024 | ¥[M] | ¥[M] | ¥[M] | [%] | [%] | [±pp]
全年 | ¥[M] | ¥[M] | ¥[M] | [%] | [%] | [±pp]
四、重复交易检测
------------------------------------------------------------
4.1 完全重复检测
检测范围: [例: AP发票, 记录数: N]
检测维度: 金额 + 日期 + 供应商名称
发现数: [N]组完全重复
序号 | 原始记录ID | 重复记录ID | 金额 | 日期 | 供应商 | 风险等级
1 | INV-00456 | INV-00789 | ¥15,000 | 2024-03-15 | A供应商 | 高
2 | INV-01234 | INV-01567 | ¥8,500 | 2024-06-20 | B供应商 | 高
4.2 近似重复检测
检测维度: 金额(±0.01) + 日期(±3天) + 供应商
发现数: [N]组近似重复
序号 | 记录A | 记录B | 金额差异 | 日期差异 | 供应商差异 | 风险等级
1 | [ID] | [ID] | ¥0.00 | 2天 | 同一 | 高
4.3 反向分录检测
检测范围: [例: GL调整分录]
检测维度: 同一科目金额相同方向相反,间隔≤30天
发现数: [N]组反向分录
序号 | 分录A | 分录B | 金额 | 方向 | 间隔天数 | 风险等级
1 | [ID] | [ID] | ¥50,000 | 借/贷 | 5天 | 中
五、关联方筛查
------------------------------------------------------------
5.1 地址匹配
匹配类型: 供应商地址 vs 员工地址
发现数: [N]条匹配
序号 | 供应商名称 | 供应商地址 | 员工姓名 | 员工地址 | 匹配度
1 | [名称] | [地址] | [姓名] | [地址] | [高/中/低]
5.2 电话/邮箱匹配
匹配类型: 供应商联系方式 vs 员工联系方式
发现数: [N]条匹配
序号 | 供应商名称 | 联系电话/邮箱 | 员工姓名 | 联系电话/邮箱
1 | [名称] | [信息] | [姓名] | [信息]
5.3 名称相似度分析
分析对象: 供应商主数据 vs 已知关联方清单 + 员工姓名
相似度算法: Levenshtein Distance / Jaro-Winkler
阈值: 相似度 > 70%
发现数: [N]条相似
序号 | 供应商名称 | 关联方/员工 | 相似度 | 匹配类型
1 | [名称] | [名称] | [%] | [缩写/音似/形似]
5.4 交易模式异常
筛查规则: [以下按适用规则列出]
发现: [按规则列出异常交易]
六、异常值检测
------------------------------------------------------------
6.1 金额异常值
方法: [Z-Score / IQR / 其他]
分析对象: [科目名称]
发现数: [N]笔异常大额交易
序号 | 交易ID | 日期 | 金额 | 统计值 | 风险等级
1 | [ID] | [日期] | ¥[金额] | Z=[值] | [高/中]
6.2 时间异常
筛查规则: 非工作时间录入、月末大额调整等
发现数: [N]笔
序号 | 交易ID | 日期 | 时间 | 金额 | 异常类型
1 | [ID] | [日期] | [时间] | ¥[金额] | [周末录入/月末调整]
6.3 审批限额规避
筛查规则: 交易金额恰好在审批限额以下(如限额¥50,000,金额¥49,XXX)
发现数: [N]笔
序号 | 交易ID | 金额 | 审批限额 | 差额 | 频率(30天内)
1 | [ID] | ¥49,800 | ¥50,000 | ¥200 | [N]次
七、发现汇总与风险评估
------------------------------------------------------------
编号 | 发现类别 | 发现描述 | 影响金额 | 风险等级 | 审计应对
F-01 | 本福特偏离 | [简述] | ¥[金额] | 高 | [应对措施]
F-02 | 重复交易 | [简述] | ¥[金额] | 高 | [应对措施]
F-03 | 关联方 | [简述] | ¥[金额] | 中 | [应对措施]
F-04 | 异常值 | [简述] | ¥[金额] | [等级] | [应对措施]
风险等级定义:
- 高: 可能存在舞弊或重大错报,需要立即调查并获取充分证据
- 中: 需要额外关注,可能需要扩大测试范围
- 低: 已记录但风险可控,纳入持续监控
八、技术附录
------------------------------------------------------------
分析工具: [Python 3.x / R / IDEA / ACL / Excel]
脚本版本: [版本号]
执行环境: [环境描述]
数据处理日志: [关键数据清洗和转换步骤]
============================================================
Diagnostic Questions
- 数据可用性: 客户系统能否导出完整的交易级数据?格式是什么(CSV/Excel/数据库)?
- 数据量级: 交易数据量有多大?是否满足本福特定律分析的最低要求(≥500条)?
- 分析目标: 本次数据分析的首要目标是什么(完整性/准确性/舞弊筛查)?
- 历史基准: 是否有历史期间的数据作为趋势对比基准?
- 行业数据: 是否有可参考的行业均值数据?
- 关联方清单: 客户是否提供了已知关联方清单和员工名册?
- 审批矩阵: 客户的审批权限矩阵是什么?(用于审批限额规避分析)
- 系统限制: 客户系统是否有数据导出限制或字段脱敏要求?
Verification
- 数据完整性已验证(导出数据合计与TB一致)
- 分析方法的前提条件已满足(如本福特定律的数据量要求)
- 异常阈值设置有合理依据
- 所有统计检验的p值或临界值已记录
- 异常发现已排除已知合理原因
- 关联方筛查结果已与客户确认
- 发现分类和风险评估合理
- 分析脚本可复现(已保存脚本文件)
Saving
audit/
├── [客户名称]/
│ ├── [报告期间]/
│ │ ├── data-analytics/
│ │ │ ├── raw-data/
│ │ │ │ ├── GL-export-YYYYMMDD.csv
│ │ │ │ ├── AP-export-YYYYMMDD.csv
│ │ │ │ └── AR-export-YYYYMMDD.csv
│ │ │ ├── scripts/
│ │ │ │ ├── benford-analysis.py
│ │ │ │ ├── duplicate-detection.py
│ │ │ │ └── related-party-screening.py
│ │ │ ├── output/
│ │ │ │ ├── benford-results.csv
│ │ │ │ ├── duplicates-found.csv
│ │ │ │ └── related-party-matches.csv
│ │ │ ├── DA-Findings-Report.md
│ │ │ └── DA-Technical-Appendix.md
Capability Upgrade
Mode Selection
- Quick: 对给定数据字段提出异常检测方法和风险点。
- Standard: 执行数据质量检查、异常检测、发现分级和调查建议。
- Deep: 形成可复现分析包,包含数据字典、清洗规则、脚本、结果表、抽样建议和管理层报告。
Investigation Loop
异常不是结论。每个异常结果必须进入闭环:数据质量排除、业务解释收集、证据抽样、风险评级、管理层回应和后续程序。
Quality Gates
- 数据范围、期间、字段口径和缺失值处理已说明。
- 异常规则有业务含义,不只是统计离群。
- 结果区分误报、待调查和高风险事项。
- 分析过程可复现,保留参数、脚本或规则。
- 输出能连接到审计程序、调查程序或整改行动。
Deliverable Catalog
| Deliverable | When to use | Minimum content | Format |
|---|---|---|---|
| Data quality assessment | 分析前 | 数据范围、字段、缺失、重复、异常和口径问题 | Markdown / Excel |
| Analytics test plan | 设计数据测试 | 目标、规则、数据源、阈值、输出和复核方式 | Markdown |
| Anomaly results table | 输出异常 | 异常编号、规则、金额、对象、风险和状态 | Excel / CSV |
| Findings report | 管理层或审计汇报 | 方法、结果、重点异常、影响和建议 | Word / PPT |
| Technical appendix | 保留可复现过程 | 数据处理、参数、脚本、规则和限制条件 | Markdown |
| Investigation tracker | 后续核查 | 异常、owner、解释、证据、结论和整改状态 | Excel |
Signals
- GitHub stars
- 37
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
data-analytics-anomaly-detection- Source
- github.com/guoliang1114-boop/ariaai