Files
homeagent-sdk/tools/gengskill/docs/EXAMPLE_WALKTHROUGH.md

259 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🧪 完整示例:从数据到报告的端到端演示
> 本文档通过一个完整的假数据检测案例,演示 Geng Skill 的全部使用流程。
---
## 场景设定
假设你在审阅一篇生物医学论文,论文声称:
> "我们分别对小鼠进行了 Control、Treatment A、Treatment B 三组实验处理,
> 测量了各组的蛋白表达水平(相对定量)。结果显示 Treatment A 和 Treatment B
> 均显著提高了蛋白表达水平。"
论文提供了以下数据(摘自 Supplementary Table 1
```csv
sample_id,control_group,treatment_a,treatment_b,measurement
1,2.34,4.68,7.02,12.5
2,3.12,6.24,9.36,15.8
3,1.87,3.74,5.61,8.9
4,4.56,9.12,13.68,22.1
5,2.98,5.96,8.94,14.3
6,3.45,6.90,10.35,17.2
7,1.23,2.46,3.69,6.8
8,5.67,11.34,17.01,28.4
9,2.01,4.02,6.03,10.1
10,3.89,7.78,11.67,19.5
11,4.12,8.24,12.36,20.8
12,1.56,3.12,4.68,7.9
13,2.78,5.56,8.34,13.6
14,3.34,6.68,10.02,16.7
15,4.90,9.80,14.70,24.5
16,1.45,2.90,4.35,7.2
17,2.67,5.34,8.01,13.1
18,3.56,7.12,10.68,17.8
19,4.23,8.46,12.69,21.2
20,1.89,3.78,5.67,9.4
```
---
## 步骤 1初步目视检查
一位细心的审稿人可能注意到:
- Treatment A 的数值似乎都是 Control 的两倍
- Treatment B 的数值似乎都是 Control 的三倍
但仅凭目测无法确认。让我们用 Geng Skill 做系统化检测。
---
## 步骤 2运行检测
### 2.1 命令行一键检测
```bash
cd geng-skill/scripts
python3 geng_assess.py \
--input ../examples/fake_data_demo.csv \
--domain biomedical \
--output ../report/
```
### 2.2 Python API 方式
```python
import sys
sys.path.insert(0, 'scripts')
from last_digit_test import last_digit_test
from fixed_relation_test import fixed_relation_test
import csv
# 加载数据
with open('examples/fake_data_demo.csv') as f:
rows = list(csv.DictReader(f))
control = [float(r['control_group']) for r in rows]
treat_a = [float(r['treatment_a']) for r in rows]
treat_b = [float(r['treatment_b']) for r in rows]
# 运行固定关系检测
result = fixed_relation_test(control, treat_a, 'Control', 'Treatment A')
print(f"风险评分: {result['risk_score']}/100")
print(f"解释: {result['interpretation']}")
```
---
## 步骤 3检测结果详解
### Module 1: 末位数字检测
```
┌────────────────────────────────────────────────────────────────┐
│ 检测列: control_group │
│ 末位数字分布: {0:0, 1:1, 2:2, 3:2, 4:2, 5:2, 6:3, 7:3, 8:2, 9:3} │
│ χ² = 4.00, p = 0.9114 │
│ 结果: ✅ 正常 — 末位数字分布与均匀分布无显著差异 │
│ 风险评分: 3.5/100 │
└────────────────────────────────────────────────────────────────┘
```
**解读**:造假者在编造 Control 组数据时,末位数字分布还算随机。这说明末位数字检测并非万能——它无法检测"有一定水平"的造假。
```
┌────────────────────────────────────────────────────────────────┐
│ 检测列: treatment_a │
│ χ² = 21.00, p = 0.0127 │
│ 结果: ⚠️ 异常 — 末位数字分布存在偏离 │
│ 风险评分: 47.5/100 │
└────────────────────────────────────────────────────────────────┘
```
**解读**Treatment A 的末位数字分布出现异常。这是因为 Control × 2 导致了末位数字的非均匀映射(如原数 .34 × 2 = .68,原数 .56 × 2 = .12)。
---
### Module 4: 固定关系检测 ⭐(核心发现)
```
┌────────────────────────────────────────────────────────────────┐
│ 检测对: Control vs Treatment A │
│ │
│ 固定比值检测: │
│ mean_ratio = 2.000000 │
│ std_ratio = 0.000000 │
│ → 🔴 完美固定比值!所有数据点 Treatment_A = Control × 2 │
│ │
│ 线性关系检测: │
│ R² = 1.0000000000 │
│ slope = 2.0000 │
│ intercept = 0.000000 │
│ → 🔴 完美线性关系,零残差 │
│ │
│ 风险评分: 95/100 — 极高风险 │
└────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
│ 检测对: Control vs Treatment B │
│ │
│ 固定比值检测: │
│ mean_ratio = 3.000000 │
│ std_ratio = 0.000000 │
│ → 🔴 完美固定比值!所有数据点 Treatment_B = Control × 3 │
│ │
│ 风险评分: 95/100 — 极高风险 │
└────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────┐
│ 检测对: Treatment A vs Treatment B │
│ │
│ 固定比值检测: │
│ mean_ratio = 1.500000 │
│ std_ratio = 0.000000 │
│ → 🔴 完美固定比值Treatment_B = Treatment_A × 1.5 │
│ │
│ 风险评分: 95/100 — 极高风险 │
└────────────────────────────────────────────────────────────────┘
```
**解读**:这是最致命的发现。三组"独立实验"数据之间存在精确的整数倍关系:
- Treatment A = Control × 2.000(精确到小数点后所有位)
- Treatment B = Control × 3.000(精确到小数点后所有位)
- Treatment B = Treatment A × 1.500(精确到小数点后所有位)
**在真实生物实验中,这种完美的整数倍关系概率趋近于零。** 即使药物真的将蛋白表达提高了2倍每个样本的响应也会有生物学变异个体差异、实验误差等绝不可能所有20个样本都精确地是2.000倍。
---
### 综合评估
```
╔══════════════════════════════════════════════════════════════════╗
║ 📋 综合评估结果 ║
╠══════════════════════════════════════════════════════════════════╣
║ ║
║ 🔴 综合风险评分: 92/100 — 极高风险 ║
║ ║
║ 核心证据: ║
║ • 三组"独立实验"数据存在精确整数倍关系×2, ×3, ×1.5
║ • R² = 1.0,残差为零 ║
║ • Treatment A 末位数字分布异常p = 0.013
║ ║
║ 结论: 数据极大概率为从单一数据源Control组通过简单 ║
║ 乘法运算生成,而非独立实验获得。 ║
║ ║
╚══════════════════════════════════════════════════════════════════╝
```
---
## 步骤 4与正常数据对比
`real_data_demo.csv`(模拟的正常实验数据)运行同样的检测:
```
检测结果:
• 末位数字: ✅ 所有列 p > 0.05
• 本福特定律: ✅ 符合
• 固定关系: ✅ 无固定比值/差值ratio_std > 1.5
• 小数位一致性: ✅ 模式多样
综合风险评分: 8/100 — 🟢 低风险
```
---
## 步骤 5生成正式报告
运行完成后,`report/` 目录包含:
```
report/
├── geng_assessment_report.json # 机器可读完整报告
└── geng_assessment_report.md # 人类可读 Markdown 报告
```
报告可直接用于:
- 向期刊提交 Letter of Concern
- 向机构科研诚信办公室提供技术证据
- 审稿意见中引用具体检测结果
---
## 关键教训
| 教训 | 说明 |
|------|------|
| **单一检测不足以定论** | 末位数字检测对 Control 组未报警,但固定关系检测精准命中 |
| **多模块交叉验证更可靠** | 末位异常 + 固定比值 + 完美线性 = 综合证据链 |
| **异常不等于造假** | 需要排除合理解释(如数据预处理中的标准化操作) |
| **上下文很重要** | 同样的"固定比值"在"原始数据 vs 标准化后数据"场景中是正常的 |
| **工具是辅助,人是决策者** | 最终判断需要领域专家结合实验设计做出 |
---
## 对审稿人/研究者的实用建议
### 何时应该怀疑数据?
1. ✋ 不同实验组数据太"干净"——没有离群值、没有异常
2. ✋ 多组数据的 error bar 高度一致
3. ✋ 不同条件下的重复次数完全一致
4. ✋ 数据点"太完美"地落在预期曲线上
5. ✋ 补充材料中的原始数据与正文图表不匹配
### 何时应该运行 Geng Skill
1. 📊 审阅高利害关系的论文(顶刊/基金/职称)
2. 📊 收到学术不端举报后需要技术验证
3. 📊 对自己团队数据做"造假预防"自查
4. 📊 期刊编辑部建立投稿数据审查流程
---
*Geng Skill v1.0.0 — 完整示例演示*