# medstat
给 Claude Code 和 Kimi Code 用的临床统计 skill。一份代码两边装。
做的事情就一件:你出统计结果之前,帮你把该查的查了。重点不是帮你选方法,是拦住那些跑得过去但结论是错的分析。比如同一个病人的多次随访当独立样本(假阳性从 5% 涨到 13.8%),比如把中介变量塞进调整集,比如 Cox 模型不验 PH 假设。这类错误运行时不报错也没警告,但结论已经偏了。
完整的反模式清单在 `references/anti_patterns.md`。
## 怎么用
装好之后正常说话就行。
- "Fisher 和卡方什么区别" : 直接答,不问你要数据
- "做个基线表" : 出 Table 1 加 Word/Excel
- "对照 20% 想提到 30% 要多少人" : 每臂 294
- "还在设计阶段" : 出 estimand 卡、DAG、SAP 草案
- "帮看看统计有没有问题" : 只读诊断,不改东西
也可以打 `/medstat`。
一共 37 个功能,覆盖基线表、IPTW、GEE/GLMM、生存分析、竞争风险、样本量、DAG 审计、多重插补、meta 分析、森林图等。详见 SKILL.md。
## 安装
三种方式,选一个。
### 让模型自己装
把下面这段粘到 Claude Code 或 Kimi Code 的对话里:
```
帮我装 medstat,仓库 https://github.com/chenpg2/claude-medstat-skill
1. 克隆到临时目录,看看 README 和 install.sh
2. 跑 ./install.sh --check,Python 包缺的帮我装,R 包列出来让我自己决定
3. 跑 ./install.sh,装完跑测试
4. 贴测试结果,预期 151 tests, 150 passed, 1 skipped
5. 哪步失败了请贴原始报错,别跳过
```
### 自己跑
```bash
git clone https://github.com/chenpg2/claude-medstat-skill.git
cd claude-medstat-skill && ./install.sh
```
脚本会自动找你装了哪个宿主,分别装好跑测试。只装一个就 `./install.sh claude` 或 `./install.sh kimi`。只查依赖就 `./install.sh --check`。
### 直接克隆到位
```bash
git clone https://github.com/chenpg2/claude-medstat-skill.git ~/.claude/skills/medstat
```
只在某个项目里用就克隆到 `.claude/skills/medstat`。
### 依赖
Python 3.10+,R 4.3+。大部分统计走 R。
```bash
pip install pandas numpy scipy statsmodels matplotlib openpyxl python-docx
```
```r
install.packages(c("survival", "survey", "WeightIt", "cobalt", "tableone",
"gtsummary", "flextable", "officer", "mice", "MASS", "rms", "pROC",
"metafor", "geepack", "glmmTMB", "clubSandwich", "dagitty", "CMAverse",
"forestplot", "EValue"), repos = "https://cloud.r-project.org")
```
不用一次装全。每个功能被调用时会查自己要的包,缺了告诉你缺哪个,给你一条能直接粘贴的安装命令。不会悄悄换个方法凑合。
### 验证
```bash
python3 ~/.claude/skills/medstat/tests/run_tests.py
```
预期 `151 tests | 150 passed, 1 skipped, 0 failed`。skip 的那个是模拟数据没违反比例风险,不是出错。
## 领域包
核心不管你做什么学科,只管统计结构(谁嵌套在谁里面、分析单位是什么)。学科相关的词汇放在可选的领域包里:
```python
from medstat.domains import load_domain
load_domain("reproductive_medicine")
```
加了领域包只影响变量汇总方式、聚类列探测提示词、解释文本,不改护栏的判定逻辑。加新学科在 `assets/domains/` 放个 YAML 就行。
## License
[MIT](LICENSE)