Data analysis
调查数据分析与审计技术 — 当需要对交易/财务/日志数据做异常检测、趋势分析、Benford分析、关联分析、重复检测,或需要为调查假设寻找数据支持、在数据未到手时主动规划数据需求时使用本技能。涵盖分析目标研判、策略选择、主动数据规划、执行能力边界和标准产出范式。From its SKILL.md
npx -y skills add sxd007/investigation-ontology --skill data-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
13.5 KB, as published. Nobody here has run it
数据分析与审计技术
用数据发现异常 — 调查中最有说服力的证据往往是数字本身。
配置前置检查
在执行本技能的业务操作前,按以下流程检查用户配置:
检查 {配置路径}/team-profile.md
├── 不存在 / 含 [PLACEHOLDER] / 含 PAUSED 标记
│ └── 自动进入 /efio:cold-start 配置向导,完成后继续
└── 配置就绪 → 继续
详细规则参见 config-templates/config-loader.md。
此技能读取的配置项:
- evidence-policy:数据处理规则(数据最小化、脱敏要求)(待后续实现)
When to Activate
- 需要对交易数据、财务数据、日志数据等进行异常检测或模式发现
- 调查员拿到一批数据,不确定该怎么分析
- 需要验证或推翻某个调查假设的数据分析支持
- 案件已有假设但数据尚未到手,需要主动规划该获取什么数据
- 需要生成可被证据链或调查报告消费的结构化分析发现
- 设计流程审计方案或内控有效性评估的数据分析部分
两种入口模式
调查数据分析根据数据是否到手,有两种入口:
数据驱动(数据已在手):理解数据 → 确立目标 → 研判策略 → 执行分析 → 产出发现
需求驱动(数据尚未到手):案件背景 + 假设 → 主动规划"该有什么数据" → 向调查员提问 → 调查员标记可获取性 → 基于可获取数据进入数据驱动模式
两种模式不互斥——需求驱动的规划完成后自然过渡到数据驱动;数据驱动中发现数据不足时也可回到需求驱动补充规划。
分析目标类型
| 维度 | 选项 | 含义 |
|---|---|---|
| 分析性质 | 探索性 | 不知道有什么异常,广撒网找线索 |
| 验证性 | 有具体假设,找支持或反驳的数据证据 | |
| 分析对象 | 资金流向 / 主体关联 / 数值分布 / 时间模式 / 流程合规 / 文本内容 | 决定方法选择 |
| 期望产出 | 发现线索 / 支撑假设 / 排除嫌疑 / 量化损失 / 评估内控 | 决定置信度要求 |
分析策略选择
基于目标选择方法组合(详见附录 A 技术参考)。选择时考虑:
- 适用前提:每种方法有前提条件(如 Benford 要求量级跨度大、非人为指定金额;时间序列分解需要足够历史周期)
- 交叉验证:多技术交叉验证优于单技术结论
- 判读标准:预先明确"什么算异常""异常到什么程度值得追查",避免发现一堆异常但不知道哪个重要
主动数据规划
当数据尚未到手时,基于案件类型和假设,主动研判"应该具备哪些数据"。
平衡原则
主动性的来源是领域知识(基于舞弊类型知道该查什么数据),落地性来自结构化过滤(不假设数据存在或可获取)。每项数据需求分四层表达:
- 分析价值:对于此类调查,X 数据有什么分析价值,能做什么分析
- 存在性探询:以问句探询数据是否存在("贵公司是否有 X 系统?"而非"请导出 X 数据")
- 可获取性:由调查员标记(能拿到 / 能拿到但不全 / 拿不到)
- 替代方案:如果拿不到,有什么替代数据,能做什么降级分析
领域知识来源:fraud-classification(SKILL.md)的 ACFE 信号库、各 fraud-* 专题 skill(如 fraud-channel、fraud-procurement)的"关键信号"和"调查切入点"。
data_demand_map 范式
data_demand_map:
case_context:
fraud_type: procurement_fraud
hypothesis_ref: HYP-001
demands:
- demand_id: DD-01
data_type: 供应商主数据
analytical_value: |
最核心分析对象。可做:供应商集中度分析、新供应商筛查、
关联方匹配、注册时间异常检测。
existence_probe: 贵公司是否有供应商管理系统或采购台账?
alternatives:
- data: 付款记录中的收款方信息
enables: 对手方集中度分析
limitation: 无法获取供应商注册信息和准入时间线
availability: available | partial | unavailable | unknown # 调查员填
investigator_note: ""
执行能力边界
数据分析的自动化能力分三级,执行中动态判断(非事前标签):
| 级别 | 条件 | 含义 |
|---|---|---|
| 可自动 | 数据结构化、字段齐全、方法成熟 | 脚本/分析可直接完成 |
| 需协助 | 数据半结构化、或需业务解释 | 部分自动完成,特定环节需调查员介入 |
| 需人工 | 数据非结构化、方法依赖专业判断 | 自动分析无法完成,需调查员手动实施 |
降级触发情形:
| 情形 | 信号 | 含义 |
|---|---|---|
| 数据不够规整 | 字段缺失、格式混乱、口径不明 | 需调查员规整数据或解释字段含义后才能继续 |
| 缺业务上下文 | 能算出异常,但不知业务上是否正常 | 需调查员提供业务解释才能定性 |
| 超出自动能力 | 需要 OCR、外部取证、专业判断 | 需调查员手动实施,agent 退为指导 |
降级不是失败——是对结果可靠性负责。一个说"这部分我做不了,需要你这样做"的输出,远好过一个悄悄给出错误结论的输出。
数据消费规则
- 如有
raw/parsed/*.json(document-parsing 产物):优先消费,继承字段级置信度和文档类型语义(schemas/document-types/中各 schema 已标注调查关键字段和异常信号) - 如是裸 CSV/Excel:按数据画像处理(记录数、时间跨度、字段完整度、可用分析键)
- 如需从系统取数:明确需要什么表、什么字段、什么时间范围
- 对所有上游"来者不拒"——parsed 在就消费,不在就当普通数据;planner 方案在就参考,不在就对话澄清
analysis_finding 输出范式
所有分析发现统一为以下范式:
analysis_finding:
finding_id: DA-NNN
analysis_goal:
nature: exploratory | confirmatory
hypothesis_ref: HYP-001 | null # 弱引用,探索性可能无对应假设
target: 资金流向 | 主体关联 | 数值分布 | ...
method:
techniques: [benford, duplicate_detection, ...]
rationale: 选择理由
execution_status: auto_completed | partially_completed | requires_human
data_scope:
source: 数据来源
period: 时间范围
record_count: 记录数
data_refs: [PARSE-...] # 弱引用,有则填
finding:
summary: 一句话发现
detail: [异常点1, 异常点2, ...]
confidence_hint: confirmed | probable | suspected
alternative_explanation: 业务上可能的合理解释
provenance:
script_or_steps: | # 必须填写,确保可复现
...
intermediate_artifacts: []
suggested_next:
route: evidence-analyzer | investigation-planner | human_review | none
rationale: 为什么建议去那
字段填写规则:
confidence_hint:填写分析判断提示,不是最终结论。最终定性由 evidence-analyzer 或调查员确定execution_status:如实填写。auto_completed仅在全部自动完成且结果可靠时使用;requires_human表示自动分析无法完成provenance.script_or_steps:必须填写,确保发现可被复核analysis_finding是独立产物,不假设下游消费方式。不在产出时直接写入 evidence_registry——由下游决定如何消费hypothesis_ref是弱引用——有对应假设就填,探索性分析可能无对应假设
附录 A:技术参考
以下技术清单供研判分析策略时参考选用,不是固定流程。实际分析中往往多技术交叉验证。
A.1 审计方法分类
| 方法 | 描述 | 适用场景 |
|---|---|---|
| 穿行测试 (Walk-through) | 跟踪一笔交易走完全流程 | 理解业务流程、识别控制点 |
| 控制测试 (Test of Controls) | 验证控制是否有效运行 | 内控有效性评估 |
| 实质性测试 (Substantive Testing) | 直接验证交易/余额准确性 | 发现异常/错误/舞弊 |
| 分析性程序 (Analytical Procedures) | 比率/趋势/合理性分析 | 发现反常波动 |
| 数据挖掘 (Data Mining) | 大数据量自动扫描异常模式 | 大规模舞弊筛查 |
| 统计抽样 (Statistical Sampling) | 从样本推断整体特征 | 无法100%检查时 |
A.2 异常检测技术
定量方法:
| 技术 | 适用范围 | 适用前提 | 说明 |
|---|---|---|---|
| Benford 定律 | 自然产生的大数据集 | 量级跨度大、非人为指定金额 | 检测人工篡改/伪造。注意:检测异常不是检测舞弊,结果需印证 |
| 标准差/置信区间 | 连续型数值 | 数据近似正态分布 | 超出 3σ 的离群点 |
| 时间序列分解 | 存在季节性模式的数据 | 有足够历史周期 | 识别异常时间点趋势突变 |
| 关联规则挖掘 | 交易明细 | 有足够的交易频次 | A → B 异常关联模式 |
| 聚类分析 | 多维数据 | 有可度量的特征维度 | 发现不合群的"孤立点" |
定性方法:
- 阈值规则 — 超过某金额/频次的交易自动标记
- 模式匹配 — 已知舞弊模式的自动识别
- 同行对比 — 跨部门/跨区域的横向比较
- 历史对比 — 与往年同期/业务量的纵向对比
- 合理性测试 — 数据是否符合业务逻辑(如周末大量操作)
A.3 关系与网络分析
- 实体关联 — 共享地址、电话、银行账户、IP
- 交易流向 — 环形支付、资金归集、快进快出
- 买卖方重叠 — 同一人控制交易两侧
- 重复与模糊匹配 — 重复发票号/付款编号/合同ID,实体名称模糊匹配
A.4 流程与内控分析
参考 COSO 内控框架,调查中常见的内控突破口:
- 职责分离不足 — 同一人能创建PO + 验收 + 付款
- 授权审批漏洞 — 审批限额过高或存在"橡皮图章"
- 系统访问控制缺失 — 共享账号、权限过大、未及时清理离职人员权限
- 对账机制缺失 — 长期未调节的账户是舞弊的温床
- 例外处理流程缺失 — 急单/例外/手工操作是最容易被利用的环节
A.5 可视化建议
| 视图类型 | 用途 | 适用场景 |
|---|---|---|
| 资金流向图 (Sankey) | 展示资金流转路径 | 资金追踪、洗钱分析 |
| 关系图谱 (Network) | 展示人员/公司/账户关系 | 腐败贿赂、关联交易 |
| 时间线 (Timeline) | 展示事件顺序 | 事件重构、作案过程还原 |
| 热力图 (Heatmap) | 展示异常集中区域 | 费用分布、时间模式 |
| 趋势图 (Trend) | 展示变化趋势 | 收入/费用异常波动 |
| 散点图 (Scatter) | 发现离群点 | 供应商定价异常、费用异常 |
可视化原则:叙事先于展示(先想好说什么故事再选图表)、标注异常点(不假设读者能自己发现)、保持可追溯(每个数据点回溯到原始数据)。
A.6 持续监控预警规则示例
| 规则 | 说明 | 触发动作 |
|---|---|---|
| 同一供应商连获3次投标成功 | 可能存在围标 | 自动标记 + 上报 |
| 周末/深夜大量审批通过 | 可能存在异常授权 | 自动标记 + 二次确认 |
| 单笔支付恰好低于审批限额 | 可能存在拆单规避 | 标记为疑似拆分 |
| 新供应商签约后立即大额支付 | 可能存在虚假供应商 | 触发供应商尽调 |
| 费用报销异常高频 | 可能存在报销欺诈 | 自动标记 + 抽样审查 |
分析辅助工具
以下工具类型可辅助加速数据分析。这些工具不是必须的——未配置时,由模型按分析标准直接完成。
如环境中配置了以下类型的 MCP 服务器,可辅助加速。不可用时用 Bash 脚本或模型直接计算:
- 数据库查询类 MCP:用于查询交易数据、探索数据表结构。不可用时基于提供的 CSV/Excel 直接分析
- 表格数据处理类 MCP:用于导入财务数据、执行 Benford 检测、趋势分析。不可用时用 Python 脚本处理
- 图表生成类 MCP:用于生成异常检测热力图、趋势图。不可用时用文本表格描述
Related
- Skills: 调查工具与技术, 证据链与底稿管理, 写作与报告技巧, 文档结构化解析 — parsed JSON 的生产者, 项目执行差异分析 — 特定场景的落地分析范例
- Agents:
data-analyzerfor 数据分析执行,investigation-plannerfor 假设与数据需求 - Commands:
/analyze数据分析
References
- COSO "Internal Control — Integrated Framework"
- IIA "International Professional Practices Framework (IPPF)"
- Nigrini, M. "Benford's Law: Applications for Forensic Accounting"
- ACL / IDEA — Data analytics tools