| name | stat-analysis |
| description | 统计分析执行。基于研究设计执行完整统计分析流程。既支持 /stat-analysis,也支持自然语言触发,如‘帮我跑统计分析’。 |
| argument-hint | ["分析计划或研究设计文件"] |
| allowed-tools | Bash(*), Read, Write, Edit, Grep, Glob, WebSearch, WebFetch, Agent |
统计分析 - Kenji 的分析引擎
概述
基于 research_plan.md 执行完整的统计分析流程。采用假设驱动的分析范式:先写假设、再验假设、再跑敏感性分析。当多种方法均可行时,启动多路径探索器对比择优。以 Kenji 的视角执行(参考 ~/.claude/agents/kenji.md)。
流程
Step 1: 分析环境准备
- 读取
research_plan.md 中的统计分析计划
- 读取
data_dictionary.md 确认变量定义
- 加载
data_clean.csv 分析就绪数据集
- 确认分析工具可用(Python: pandas/scipy/statsmodels/lifelines;R: survival/meta/forestplot)
- 创建分析代码目录
analysis/
Step 2: 假设声明
在执行任何分析之前,明确写出:
## 假设清单
### 主假设
H1: [暴露因素] 与 [主要结局] 存在 [方向] 关联
H0: [暴露因素] 与 [主要结局] 不存在关联
### 次要假设
H2: ...
H3: ...
### 亚组假设
H4: 上述关联在 [亚组] 中更为显著
Step 3: 前提条件检验
对每个拟用统计方法,逐一验证其前提假设:
| 方法 | 需检验的前提 |
|---|
| t检验 | 正态性 + 方差齐性 |
| ANOVA | 正态性 + 方差齐性 + 独立性 |
| 卡方检验 | 期望频数 ≥ 5 |
| 线性回归 | 线性性 + 正态残差 + 同方差 + 无多重共线性(VIF<10) |
| Logistic 回归 | 样本量/变量比 ≥ 10:1 + 无多重共线性 |
| Cox 回归 | 等比例风险假设(Schoenfeld 残差检验) |
| 混合效应模型 | 随机效应结构合理 + 残差正态 |
前提不满足时:记录违反项 → 选用替代方法(如非参数检验)或数据转换
Step 4: 多路径探索器
当 ≥2 种方法均可行时,启动多路径探索:
- 对每种候选方法分别执行完整分析
- 按三维评分标准择优:
- 假设契合度(40%):前提条件满足程度
- 模型拟合度(35%):AIC/BIC、R-squared、C-statistic
- 可解释性(25%):结果是否易于临床解读
- 选定主分析方法,其余作为敏感性分析补充
Step 5: 主分析执行
按研究设计依次执行:
-
基线特征表(Table 1)
- 按分组列出所有变量的描述统计
- 连续型:均值(SD) 或 中位数(IQR)
- 分类型:频数(百分比)
- 组间比较 P 值
- 标准化差值(SMD)
-
主要分析
- 执行假设对应的统计检验
- 报告:效应量 + 95%CI + P值
- 效应量优先于 P 值——即使 P < 0.05,效应量微小也要如实报告
-
亚组分析
- 按预设亚组变量分层执行
- 交互作用检验
- 森林图数据准备
-
敏感性分析
- 缺失值处理方式变更(完整病例 vs 多重插补)
- 模型设定变更(变量纳入/排除)
- 异常值排除后重跑
- 多路径探索中的备选方法
Step 6: 结果汇总
生成 analysis_results.md:
# 统计分析结果
## 样本流程
[纳入排除流程及各步骤样本量]
## Table 1: 基线特征
[完整基线表]
## 主要分析结果
[效应量、CI、P值、模型诊断]
## 亚组分析结果
[各亚组效应量及交互作用]
## 敏感性分析结果
[各敏感性分析对比表]
## 关键数字摘要
[供图表制作和论文撰写直接引用的核心数字]
输出
analysis_results.md — 完整统计分析结果
analysis/ 目录 — 所有分析代码(可复现)
- Table 1 至 Table N 的结构化数据
- 更新
progress.md 中统计分析阶段状态
关键规则
- 效应量 > P 值:P 值只说是否显著,效应量才说有多大意义。两者必须同时报告
- 假设先于分析:先写假设再跑分析,杜绝 P-hacking 和事后诸葛亮
- 前提必须检验:不检验前提就跑统计方法等于掷骰子。前提不满足必须换方法
- 代码可复现:所有分析代码保存在
analysis/ 目录,设随机种子,记录包版本
- 数字对账:
analysis_results.md 中的每个数字都必须能在代码中追溯到
- 多重比较校正:多个假设检验必须做校正(Bonferroni 或 FDR),不可偷跑单个最显著的
- 大文件处理:如果 Write 工具因文件过大失败,立即用 Bash (cat << 'EOF' > file) 分块写入。不要询问用户——直接执行