mcpField
A
alterlab-preregistration-discipline

alterlab-preregistration-discipline

github.com/alterlab-ieu数据与数据库7859 次安装5 周前更新
代码仓库

关于 alterlab-preregistration-discipline

alterlab-preregistration-discipline 是一项研究规范技能,要求在查看结果数据前冻结分析计划,并区分确认性与探索性结果。它面向研究者,重点是识别计划偏离、结果窥探和事后调整,而非教授统计检验或注册操作。

主要功能

  1. 01数据分析前冻结计划
  2. 02区分确认性与探索性结果
  3. 03识别结果窥探与可选停止
  4. 04要求披露计划偏离
  5. 05检查计划与实际分析

适用场景

  1. 01分析前核对是否已有预注册计划
  2. 02结果可见后有人提议更换检验或协变量
  3. 03将未计划的分析标记为探索性
  4. 04审查论文中的计划偏离披露

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-preregistration-discipline

安装后在 Claude Code 中输入/alterlab-preregistration-discipline确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
researcher_degrees_of_freedom.md
workflow_gates.md
scripts/
prereg_check.py

详细介绍

预注册纪律(铁律)

技能类型:纪律强制型。 这不是操作指南,也不是参考资料。它旨在杜绝一种特定的失败模式——看到数据后利用研究者自由度,再把结果报告得仿佛事先计划好了一样。它规定了何时可以声称得到确认性结果;它不会教你如何选择检验或填写 OSF 表单。这些内容属于相关技能(请参见路由表)。

THE IRON LAW

    NO DATA ANALYSIS WITHOUT A PRE-REGISTERED ANALYSIS PLAN FIRST.

冻结的假设和分析计划,相当于在实现前编写的失败测试:你在知道自己是否得出结果之前,就先承诺什么才算结果。若进行未经计划的分析,规则是绝对的——这属于探索性分析。请标注并记录时间戳,且不能将其 p 值作为确认性结果报告。(遵循开放科学中心的确认性/探索性模型:在探索性研究中,p 值会失去诊断价值,研究发现需要独立重复验证。已在 https://www.cos.io/initiatives/prereg 核实。)

违反预注册的字面规定,就是违背科学精神。

这句话预先堵住了可预见的辩解——“预注册是官僚主义,我是在遵循科学精神。” 不存在遵循科学精神的例外。在探索阶段,你可以自由迭代;但要提出确认性主张,就必须遵循冻结的计划。

何时使用此技能

当有人要提出确认性主张,却没有冻结的计划作为依据时,或在数据已可见后有人试图修改计划时,立即使用此技能:

  • 即将分析某个数据集,但没有书面的、数据收集前制定的分析计划。
  • 在看到结果或 p 值之后,更换主要结果指标、增加/删除协变量,或更改检验方法。
  • 偷看持续收集的数据,并斟酌是否现在就停止(“它已经显著了”)。
  • 删除异常值、转换变量,或更改未经预先指定的排除标准。
  • 起草 OSF / AsPredicted / PROSPERO 预注册(将具体操作交由 alterlab-open-science 处理;此技能负责确保计划确实已冻结并得到遵守)。
  • 为偏离现有注册的行为寻找合理化解释。
  • 在截止日期压力下提出的请求,例如*“想办法对这个临界结果做 p-hacking,让它达到可发表的程度。”*——拒绝这种说法,改为提供 PLAN/CONFIRM/EXPLORE 路径。
不适用的情况

此技能是把关者,而不是工具箱。它负责协调其他技能,并将所有机械性工作转交出去。遇到以下相关请求时,请按如下方式转交:

请求实际涉及……转交给不应使用此技能,因为……
注册流程:OSF Registries / AsPredicted 模板 / PROSPERO、DMP、FAIR 数据、存储库选择、注册报告alterlab-open-science该技能负责如何注册;此技能只负责确保计划冻结并遵守。
选择要运行的检验、假设检验(Shapiro/Levene)、功效 / 样本量、APA 结果alterlab-statistical-analysis检验的选择与执行属于统计学,而非预注册规范。
评定证据质量(GRADE、RoB)、识别偏倚 / 混杂因素、判断设计有效性alterlab-scientific-thinking评判已有证据 ≠ 在获得数据前承诺一项计划。
核实某条引用是否存在 / 是否支持某项主张alterlab-citation-verifier这是引用完整性,而非分析计划完整性。
检查已完成分析的报告是否完整(效应量、CI、披露所有检验)alterlab-results-transparency这是 CONFIRM/EXPLORE 之后的报告关卡。
在查看数据前,针对分布边界情况从候选检验中作出选择alterlab-test-selection-guard锁定检验选择本身有专门的把关技能;此技能默认检验已列入冻结计划。
撰写 TÜBİTAK / 基金申请书的方法部分alterlab-tubitak-proposal / alterlab-research-grants这是申请书撰写,而非预注册执行(alterlab-grant-reporting 负责获批后的报告)。
研究伦理审批 / KVKK / 数据管理合规alterlab-tr-research-ethics / alterlab-kvkk-dmp伦理与数据治理不同于冻结分析计划。

必备背景知识(此技能负责协调,不会重新实现其他技能的功能): 注册材料请参考 alterlab-open-science,检验选择 + 假设请参考 alterlab-statistical-analysis,偏倚框架请参考 alterlab-scientific-thinking。某个步骤需要这些技能时,请转交处理——不要在此处重述其内容。

工作流:PLAN → COLLECT → CONFIRM → EXPLORE

这相当于研究中的红 → 绿 → 重构。每个阶段都有退出关卡;当前关卡通过前,不得进入下一阶段。

1. PLAN — 在看到任何数据之前冻结计划

写下并锁定所有以下内容:

  1. 假设(适用时注明方向)。
  2. 主要结局和任何次要结局——按优先级排序。
  3. 每项假设对应的精确检验(将选择交由 alterlab-statistical-analysis;在此记录决定)。
  4. 纳入 / 排除规则和预先指定的异常值规则。
  5. 停止规则 / 计划样本量(以排除可选停止)。
  6. 协变量、转换方式,以及缺失数据的处理方法。

通过 alterlab-open-science 注册材料(OSF Registries / AsPredicted / PROSPERO)。**关卡:**计划已存在、有时间戳,并且其中任何内容都不依赖于已查看结局数据。如果你无法回答“什么结果会推翻这一假设?”,说明计划尚未完成。

2. COLLECT — 收集数据,保持原样

按照停止规则收集数据。**不要查看结局数据来决定是否继续。**如果确实需要进行中期查看,就必须预先指定序贯设计(并在 PLAN 中记录)。**关卡:**数据收集符合冻结规则;未发生依赖结局的停止。

3. CONFIRM — 严格运行计划中的测试

按照预先指定的顺序,在预先指定的样本上运行预先指定的测试。 假设检验(通过 alterlab-statistical-analysis)必须先运行并报告,然后 才能解读结果——除非计划中已预先指定,否则不能因为假设检验未通过就更换测试; 未经计划的更换会将结果降级为 EXPLORE。 **关卡:**每个确认性数值都必须能追溯到冻结计划中的一行。

4. EXPLORE — 其他所有内容,明确标注

任何不在冻结计划中的内容都归入此处:新的子组、事后协变量、 替代测试、有趣的模式。这项工作很有价值——它能为下一项研究生成假设—— 但报告时必须放在探索性标题下,其 p 值仅作描述,不作确认性依据,并且必须注明 “需要重复验证”的警示。**关卡:**每项探索性发现都必须标注为探索性;不得将其 包装成确认性叙述的一部分。

决策流程图和完整的阶段关卡见 references/workflow_gates.md。

借口与现实

那些意料之中的合理化说辞,以及实际发生的情况。(内容基于已记录的研究者自由度文献——参见 references/researcher_degrees_of_freedom.md。)

借口现实
“数据表明有更好的测试/模型。”你正在拟合噪声。这就是 HARKing——在结果已知后再提出假设。应将其报告为探索性结果。
“我们只偷看了一次。”可选停止会抬高 I 类错误率。应报告(预先指定的)序贯设计,或者停止偷看。
“预注册太僵化了;科学是迭代的。”在 EXPLORE 部分进行迭代。确认性主张仍然需要冻结计划。
“我们删除了 3 个离群值,以满足正态性。”必须预先指定离群值规则,或者将其作为敏感性分析报告——不能悄悄修改。
“这个协变量显然应该纳入模型。”事后说“显然”=研究者自由度。应预先指定,或将其标注为探索性。
“因为 t 检验不显著,所以我们改用了 Mann–Whitney。”根据 p 值选择测试就是挑选测试。应预注册决策规则,或将结果标注为探索性。
“这一偏离符合注册的精神。”违背字面要求就是违背其精神。不存在所谓精神上的例外。
“这只是探索性研究,所以注册是多此一举。”那就把每项发现都标注为探索性,并且不声称有确认性 p 值。没有计划,就不能获得确认性认可。

危险信号 — 停止

如果你发现自己(或用户)有以下任何想法,立即停止:

  • “让我试试另一种测试看看。”
  • “我删掉这些离群值再重新运行。”
  • “只要加上这个协变量,效应就出现了。”
  • “我们现在可以停止收集数据了——结果已经显著。”
  • “我只报告那些奏效的分析。”
  • “这个子组很有意思(我们没预料到,但……)。”
  • “让我把主要结局改成那个已经出现结果的指标。”
  • “这种研究做预注册太麻烦了。”

这些都意味着同一件事:你正在利用研究者自由度。 要么回到冻结计划,要么将这项工作标注为探索性,并放弃确认性主张。 没有第三种选择。

多重比较升级关卡

一条明确且可计数的规则(相当于“修复失败 3 次=架构有问题”):

针对同一个假设运行了 3 项或更多测试来寻找显著性?立即停止。这是 多重比较/挑选测试。要么对所有测试进行校正(Bonferroni/ Benjamini–Hochberg FDR——通过 alterlab-statistical-analysis),要么宣布整个 分析为探索性。不要运行第 4 项测试来寻找 p < .05。

偏离披露关卡

如果无法避免偏离已冻结的计划(计划中确实存在错误,或某项假设无法成立),就不能悄悄将其纳入。请依次执行:

  1. 说明原始的冻结规范(引用计划)。
  2. 说明偏离内容及导致偏离的具体原因。
  3. 分类受影响的结果为探索性,除非能够证明偏离绝非由结果驱动。
  4. 披露在论文的透明度/偏离说明部分披露偏离情况(将报告完整性问题交由 alterlab-results-transparency 处理)。

你可以使用以下可选辅助工具,对计划与实际情况的叙述进行快速结构化自审:

uv run python skills/methodology/alterlab-preregistration-discipline/scripts/prereg_check.py \
    --plan plan.json --actual actual.json

这是一个仅使用标准库的核对清单评分工具(不联网,不调用第三方 API)——它不会运行统计分析。请参阅其 --help。

声称确认性结果前的自查

  • 是否存在一份在结果数据可见之前撰写并带有时间戳的冻结计划?
  • 每个确认性数值是否都能追溯到该计划中的一行?
  • 是否在解读结果前运行并报告了假设检验?
  • 每项未计划的分析是否都置于探索性标题下,并注明需要复制验证?
  • 是否披露了所有偏离,而非将其悄悄纳入?

任何一项回答“否”→ 该结果就是探索性的,而非确认性的。请明确说明。

参考资料

属于 AlterLab Academic Skills 套件的一部分。

评论

支持 Markdown