返回 Skill 列表
extension
分类: 数据与分析无需 API Key

药师审方能力自评数据分析 · SKILL

【世界药师节·AI药学技能大赛参赛作品】药师审方能力自评问卷(横断面 + 自身配对)的统计分析与药学期刊风格 Word 报告生成。当用户提供药师审方能力/把握度自评统计表,要求做数据体检、Table 1 基线表、有无审方系统的配对比较、调节效应、有序 logistic 回归、薄弱环节检出率、开放题主题编码,或要求输出含三线表与配图的分析报告时触发。同样适用于其他"自身配对 + 有序结局 + 天花板效应"的药学问卷数据。

person作者: user_ac76f862hubcommunity

药师审方能力自评数据分析 · SKILL

定位(AI 必读)

本 skill 是 AI 的工作手册,不是给用户读的说明书。

  • 用户:给一份 Excel 自评统计表 + 分析诉求,不写代码、不指定统计方法
  • AI:读本 skill → 核对数据结构 → 改 config.json → 跑 run_all.py → 读日志核对数值 → 交付 Word 报告
  • 目标:一次跑通,数值可复核,结论表述符合药学期刊规范且经得起审稿

最重要的一条:这类数据有三个固有陷阱——有序结局、天花板效应、区间删失。所有方法选择都必须绕开它们,不能按连续变量硬做。详见 references/统计方法决策.md

适用与不适用

| 情形 | 是否适用 | |---|---| | 有序等级结局 + 同一批人报告两种情境(自身配对) | ✅ 核心场景 | | 取值高度集中在量表上端(天花板效应) | ✅ 已内建量化与讨论 | | 原始录入混用小数 / 百分号 / 开放区间(>95%、<60%) | ✅ 已内建换算与三套赋值敏感性分析 | | 多选勾选题(空白 = 未勾选) | ✅ 已内建结构性零处理 | | 真正的连续结局、纵向随访、多中心 | ❌ 需另行设计,勿套用 |

快速开始(3 步)

第 1 步:核对数据结构

不要跳过这一步。 先看清表结构再改配置:

python -c "
import pandas as pd
df = pd.read_excel(r'数据.xlsx', sheet_name=None)
for name, d in df.items():
    print('===', name, d.shape)
    print(d.head(4).to_string())
"

重点确认四件事:

  1. 表头在第几行(决定 header_row,0-based)
  2. 把握度的全部取值df['有系统把握度'].value_counts())——每个取值都必须在 config.ordinal.map 里有对应等级
  3. 职称各档例数——高级职称若仅 1~2 人,三分类不可行,必须二分
  4. 工作年限档位是否语义重叠(如同时存在 >5>10)——需先定口径

第 2 步:改 config.json

只改 scripts/config.json不要改任何 .py 代码。必改项:

  • source.file / source.sheet / source.header_row
  • output.base_dir(其下自动建 work/figs/output/
  • columns:左侧原始列名改成实际表头,右侧内部短名固定不动
  • ordinal.map:把握度每个取值 → 等级序号
  • weak_items.raw / short:两个列表必须等长且一一对应
  • report.title / filename / setting

配置里以 _ 开头的键是注释,会被自动忽略。

第 3 步:跑全流程

python scripts/run_all.py --src "数据.xlsx" --base "输出目录"

单步调试用 --only a3_main。每步日志落在 <base>/work/log_*.txt

跑完必须读日志再写结论,尤其 log_a1_audit.txt(体检)与 log_a3_main.txt(主要结局)。不要凭印象转述数值。

分析模块与产出

| 脚本 | 内容 | 产出 | |---|---|---| | a1_audit | 缺失(区分真缺失/结构性零/未应答)、单位换算、区间删失、年限口径、异常值、逻辑一致性 | clean.csvr1.json | | a2_table1 | 按职称二分组的样本构成三线表 | r2.json | | a3_main | 配对 Wilcoxon + HL 估计、调节效应、有序 logistic、天花板量化 | r3.json | | a4_secondary | 检出率 + Wilson CI、分层比较 + FDR、开放题主题编码 | r4.json | | a5_figs | 图 1~5 | figs/fig1~5.png | | a6_report | 组装 Word 报告 | output/*.docx |

图 1 配对斜线图+增益直方图 / 图 2 分层森林图 / 图 3 Spearman 热力图 / 图 4 薄弱环节检出率 / 图 5 开放题主题分布。

关键方法约定(不可随意更改)

  1. 结局按有序变量处理,绝不按连续变量建模。天花板效应下均值±标准差会误导。
  2. 区间删失做三套赋值(下界/中值/上界)敏感性分析,三套结论方向必须一致才可下结论;否则只能报告为不确定。
  3. 效应量用秩二列相关 r 或 Cliff's δ,不用 Cohen's d。所有效应量必须附 95%CI。
  4. 符号检验作为不依赖赋值的稳健佐证——它只用改善/持平/下降的方向,与赋值方案无关。
  5. Bootstrap 必须报告抽样次数与随机种子(在 config.stats,默认 5000 次、种子 20260802)。改了配置就要同步改报告表述。
  6. 调节效应分析标注为探索性,不得表述为确证性结论。
  7. 不做 PSM、不做中介分析。原因与替代方案见 references/统计方法决策.md,报告中必须单列一节说明。

报告写作红线

禁用表述(出现即需改写):

根据数据显示 / 由此可见 / 结果表明具有一定 / 差异较为明显 / 呈现出一定趋势

三条硬规则

  1. P>0.05 不得写成"无差异""不存在关联",须写"未观察到差异,且本研究效能不足以排除中小效应"
  2. 横断面关联不得写"影响""导致""提升";描述自身配对比较时可用"高于"
  3. 职称是研究因素不是混杂因素,Table 1 不得表述为"基线可比性验证",只能说"描述样本构成"

格式:数值 1~2 位小数、百分比 1 位;P<0.001 / P=0.032 / P>0.05;三线表仅三条横线无竖线;表题在上、图题在下。

完整规范见 references/报告写作规范.md

常见问题

| 报错 / 现象 | 原因与处理 | |---|---| | 把握度取值未在 config.ordinal.map 中定义 | 有新取值未登记。先 value_counts() 看全,再补进 ordinal.map 和三套 schemes | | 原始表缺少以下列 | config.columns 左侧列名与实际表头不符,逐字核对(注意全角/半角、空格) | | 工作年限取值未在 years_relabel 中定义 | 补进 grouping.years_relabelyears_order | | 某分层 0 例导致检验报错 | 已内建保护(全零行列自动剔除、空分层 δ 记 0)。若整档为空,考虑合并档位 | | 报告里出现 {N} 之类字面量 | 某处字符串漏了 f 前缀,检查 a6_report.py | | 三线表显示成全框线 | add_table 当前以 Table Grid 为基础样式;如需严格三线,需改写 tcBorders XML |

交付前自查

  • [ ] 三套赋值方案结论方向一致(看 log_a3_main.txt 敏感性分析段)
  • [ ] 所有效应量都带 95%CI
  • [ ] Bootstrap 次数与种子已在报告中注明
  • [ ] 阴性结果按"未观察到差异 + 效能不足"表述
  • [ ] 无禁用表述
  • [ ] 方法学局限不少于 5 条,且含自我评估偏倚(Dunning-Kruger)、样本量与效能、假设性回忆情境、横断面不支持因果、天花板效应、多重比较
  • [ ] 已说明为何不做 PSM 与中介分析
  • [ ] 末尾附【图表清单】
  • [ ] 已注明软件及版本