| name | data-profiler |
| description | 数据探查与画像。30分钟生成完整数据画像,包括变量字典、分布、缺失率。既支持 /data-profiler,也支持自然语言触发,如‘先帮我看看这份数据长什么样’。 |
| argument-hint | ["数据文件路径"] |
| allowed-tools | Bash(*), Read, Write, Edit, Grep, Glob, WebSearch, WebFetch, Agent |
数据探查 - Ming 的画像室
概述
在数据通过鉴伪门控后,对数据集进行全面探查与画像。产出结构化的变量字典和数据画像报告,为研究设计和统计分析提供决策依据。以 Ming 的视角执行(参考 ~/.claude/agents/ming.md)。
流程
Step 1: 数据加载与格式标准化
- 读取数据文件(支持 CSV、Excel、SPSS、Stata、SAS)
- 统一编码为 UTF-8
- 标准化列名:去除特殊字符、统一为 snake_case
- 记录原始列名与标准化列名的映射关系
- 保存标准化后的数据为分析就绪格式
Step 2: 变量类型识别
对每个变量自动判定类型,并支持人工覆盖:
| 类型 | 判定规则 | 示例 |
|---|
| 连续型 | 数值型 + 唯一值 > 20 | 年龄、BMI、血压 |
| 分类型(有序) | 数值/文本 + 唯一值 ≤ 10 + 有自然顺序 | 分期(I/II/III)、评分等级 |
| 分类型(无序) | 文本/数值 + 唯一值 ≤ 20 + 无顺序 | 性别、种族、医院 |
| 二分型 | 唯一值 = 2 | 是/否、存活/死亡 |
| 日期型 | 可解析为日期格式 | 入院日期、随访日期 |
| ID 型 | 唯一值接近行数 | 患者ID、病历号 |
| 自由文本 | 文本 + 唯一值比例高 | 诊断描述、备注 |
Step 3: 分布分析
针对不同变量类型执行对应的分布分析:
连续型变量:
- 描述统计:均值、中位数、标准差、IQR、最小值、最大值
- 偏度和峰度
- 异常值检测(IQR 法 + 3 倍标准差法)
- 正态性检验(Shapiro-Wilk)
分类型变量:
- 频数表和百分比
- 众数及其频率
- 稀有类别标记(频率 < 5%)
日期型变量:
- 时间范围(最早到最晚)
- 时间间隔分布
- 季节性模式检测
Step 4: 缺失值模式分析
- 计算每个变量的缺失率
- 绘制缺失模式热力图(变量 x 观测)
- 判定缺失机制:
- MCAR(完全随机缺失):Little's MCAR 检验
- MAR(随机缺失):缺失与其他变量的相关性
- MNAR(非随机缺失):需要领域知识判断
- 推荐缺失值处理策略
Step 5: 汇总报告生成
汇总所有探查结果,生成两份文件:
data_dictionary.md — 变量字典:
| 变量名 | 原始名 | 类型 | 描述 | 取值范围 | 缺失率 | 备注 |
data_profile_report.md — 完整画像报告:
- 数据集概览(行数、列数、时间跨度)
- 各变量详细分布
- 缺失模式总结
- 潜在问题清单
- 分析建议
输出
data_dictionary.md — 结构化变量字典
data_profile_report.md — 完整数据画像报告
data_clean.csv(或对应格式)— 清洁的分析就绪数据集
- 更新
progress.md 中数据探查阶段状态
关键规则
- 不做主观删除:探查阶段只报告问题,不擅自删除数据行或列。数据处理决策留给研究设计阶段
- 变量分类可覆盖:自动分类只是建议,用户或后续阶段可调整
- 缺失率红线:变量缺失率 > 50% 标记警告;> 80% 建议排除但不自动执行
- 临床语义优先:变量命名和描述尽量使用临床术语,而非纯统计术语
- 编码保护:原始数据只读,所有转换操作产出新文件
- 大文件处理:如果 Write 工具因文件过大失败,立即用 Bash (cat << 'EOF' > file) 分块写入。不要询问用户——直接执行