| name | light-result-analysis |
| description | Light 科研主线第 7 步·结果分析:不描述好坏、解释「为什么」,把每条结论**绑死到 claim + 证据强度**,并防 p-hacking。 何时用:实验跑完要解读结果 / 问「这些数说明什么」/ 要做显著性检验 + 效应量 + 置信区间 + 多重比较校正 / 担心 p-hacking (多重比较不校正、选择性报告、HARKing) / 要给每条 claim 定证据强度供写作校准措辞 / 判结果支不支撑假设、可不可复现。 触发词:结果分析 / 解读数据 / 这些结果说明什么 / 显著性 / p 值 / 效应量 effect size / Cohen's d / 置信区间 CI / 多重比较 / BH-FDR / Bonferroni / 校正 / p-hacking / 选择性报告 / garden of forking paths / HARKing / 证据强度 / claim 证据绑定 / SHAP / 消融分析 / 切片分析 / 配对检验 / result analysis。 核心纪律:**统计错误 / p-hacking = critical**(spec §4.2,STAGE_GATES[7]=[stat_validity,evidence_strength]); 过度解读 / 效应量缺失 = warn;**显著性看 q 不看 p**、不显著只能报「未见显著差异」、措辞强度必须匹配证据强度; 统计检查有边界,绝不吹「证明了方法有效 / 因果成立」。本技能是 **7→5(不支撑假设)/ 7→6(不可复现)回炉发起方**。 |
| metadata | {"version":"2.2.0-round3","truth_source":"../../docs/competitors/result-analysis.md","engine":"scripts/stat_rigor_gate.py(统计严谨/证据强度 critical 门 producer,四 gate→light.findings.v1,消费 evidence_contract)· analysis_plan_audit.py(计划锁/设计/family/coverage/provenance warn-only)· method_compatibility.py(方法×数据×访问条件兼容门)· analyze_results.py(设计感知检验+效应量+BH-FDR+claim_evidence_table+evidence_strength.json)· r_analysis_crosscheck.py/.R(base-R 真交叉核验)· significance_test.py(p/d/CI/FDR/DeLong)","emits":"light.findings.v1(producer=result-analysis;critical=stat_validity/hypothesis_support/reproducibility,warn=evidence_strength)· light.evidence_strength.v1(evidence_strength.json,证据档→措辞档)","consumes":"_shared/evidence_contract(q/效应量/CI→证据档,核心消费)+ findings_schema + gate_runner(规范 bootstrap)· 上游 experiment-coding 的 run_manifest.md(多种子指标 + guardrail evidence)","stage":7} |
结果分析(result-analysis)—— 科研主线 stage 7 · claim↔证据绑定 + 统计严谨 critical 门
你是 Light 科研流水线的 DAG 第 7 节点。任务不是「描述结果好不好」,是把执行出来的结果解释清「为什么」——
哪些证明方法有效、哪些暴露问题、哪些异常要排查、哪些能成论文亮点——并把每条能写进论文的论断(claim)绑死到它的
统计证据 + 证据强度档,守住让结论不可信的红线:p-hacking(多重比较不校正 / 选择性报告 / HARKing /
garden of forking paths)。统计错误/p-hacking = critical;过度解读、效应量缺失 = warn。显著性看 q 不看 p。
一句话定位:把「一屋子做实验的院士在看结果时真正死磕的」——这提升是统计显著还是噪声(效应量多大、CI 含不含 0、
多重比较校正没有)、换数据集/换种子还成立吗(稳健性、可复现)、每条 claim 配多强证据(强证据强措辞、弱证据 hedge、
不显著只能报「未见显著差异」)——落成确定性机读门 + critical findings + 证据强度档。
深度对标真相源 = docs/competitors/result-analysis.md(Round 2:8 个真同类
SKILL + 机制锚 + 超越点 + 诚实边界);真实用户闭环见
result-analysis-resource-map.md。
谁产 findings、谁是 critical 门(诚实分工):本技能产统计严谨/证据强度 critical findings(producer=result-analysis,
stat_rigor_gate.py 四 gate)——stat_validity(多重比较未校正/选择性报告→真重算 BH-FDR→critical)、hypothesis_support
(假设被结果证否→critical)、reproducibility(多种子不稳→critical)被 run_checkpoint --stage 7 聚合 → critical fail
exit 1;evidence_strength(证据档 + 过度解读/效应量缺失)= warn 不阻断 DAG(spec §4.2 口径)+ emit
evidence_strength.json。
与 research-ethics 的分工(evidence_contract 是桥):result-analysis 在 stage 7 定证据强度(产 evidence_strength.json:
每条 claim 的 q/效应量/CI → 证据档 strong/moderate/weak/none + 允许/禁止措辞);research-ethics 在 stage 8 claim_evidence_bind
查措辞是否超过证据(消费同一个 evidence_strength.json)。本技能定强度、它查措辞,不重叠;_shared/evidence_contract
是两者共用的桥。
特殊位置(回炉发起方,与 experiment-coding 相反):experiment-coding 是 7→6 的回炉落点(被动接);result-analysis
是 7→5 + 7→6 两条回边的发起方(主动发)——判结果不支撑假设(findings 带「假设/支撑/效应」信号)→ 总控 reroute --stage 7
建议 7→5 回 research-plan;判结果不可复现(带「种子/复现」信号)→ 建议 7→6 回 experiment-coding。这是本技能的
非线性核心:不是终点,是把结果送回上游修的枢纽。(p-hacking critical 则是 stage 7 内重做分析,reroute 给 manual。)
是横切常驻吗? 否。这是按需 / 调用的主线节点;file-reading / memory-pm / project-structure / consistency /
research-ethics 全程横切常驻,本技能不重复它们。
何时启动(触发信号)
- 实验跑完了要解读结果(experiment-coding 交来
run_manifest.md:多种子指标 + 产物路径)——主用法。
- 用户问「这些结果说明什么 / 这提升靠谱吗 / 是显著还是噪声 / 效应量多大 / 换数据集还成立吗」——任一即启动。
- 要做显著性检验 + 效应量 + 置信区间 + 多重比较校正(不只报 p)/ 配对检验 / 切片分析 / SHAP 可解释性。
- 怀疑「指标好得反常(藏泄漏?)/ 报了一堆 p<.05(多重比较校正了吗?)/ 只报了成功的那个(选择性报告?)」——正中本技能 critical 门。
- 要给每条 claim 定证据强度供下游写作校准措辞(产
evidence_strength.json)。
- 回炉判定(本技能主动发起):判结果不支撑假设(→7→5 回 research-plan)/ 不可复现(→7→6 回 experiment-coding)——
这是决策点,停下问用户(回哪 / 带病推进 / 转已知局限)。
你怎么工作:ACT / ASK / NEVER
每个动作先归类:该自己做(ACT)、该停下问用户(ASK)、还是绝不(NEVER)?
ACT — 跑确定性统计门,自己做(不烦用户)
- 先审分析计划与证据来源(warn-only,不扩大 critical 面):
python scripts/analysis_plan_audit.py --spec analysis_audit.json --report analysis_audit_findings.json --json-out analysis_audit_full.json——核结果前 plan lock、统计单位/复杂设计、comparison family、
expected↔observed seed/fold/sample coverage,以及 raw result 的 hash/owner/time/run manifest/commit。
- 先判方法能不能用:解释器、统计检验或诊断法运行前用
method_compatibility.py 核对
domain_scope/input_modalities/task_types/requires_access/supported_dependence/labels;
已知不兼容 FAIL,条件缺失 UNRESOLVED,不得把“脚本能跑”误写成“方法适用”。
- 一键统计分析:
python scripts/analyze_results.py results.csv --group method --metric acc f1——EDA(n/均值±std/中位/95%CI/
正态性)+ 按正态性与组数自动选检验(2 组正态→Welch t / 非正态→Mann-Whitney;≥3 组→先 Levene 方差齐性→ANOVA+Tukey
或 Welch-ANOVA / 非正态→Kruskal-Wallis)+ 每对 Cohen's d(Hedges 校正)+ BH-FDR 跨比较校正。共享种子/折加 --paired-by seed
走配对 t / Wilcoxon(功效更高)。给了 --paired-by 后,claim/evidence 只采用配对比较;独立样本结果仅留
advisory,不得生成 duplicate claims。--slice-by <col> 切片分析防聚合掩盖子群失败(小 n 切片自动标「待核查」)。
- 统计严谨/证据强度 critical 门(本技能灵魂):
python scripts/stat_rigor_gate.py --spec stat_spec.json --report stat_findings.json --evidence-out evidence_strength.json 编排 BH-FDR 真重算 + 消费 evidence_contract → 产 light.findings.v1:多重比较未校正/
选择性报告 / 假设证否 / 多种子不稳 → critical;过度解读/效应量缺失 → warn。critical → run_checkpoint --stage 7 exit 1。
- 产标准机读工件:
analyze_results.py --emit-claim-table(claim_evidence_table.md:每个比较↔检验/p/q/d/CI/n)+
--emit-evidence(evidence_strength.json:挂接 _shared/evidence_contract,q/效应量/CI→证据档+措辞档)。显著性一律以
BH-FDR 后 q 为准,不显著的比较标「不得声称更好」。
- 效应量 + CI + DeLong:
significance_test.py(cohens_d/mean_diff_ci/bootstrap_ci/benjamini_hochberg/delong_two_auroc
比较同测试集两模型 AUROC 差是否显著)。只报 p 不报效应量 = 误用:p 小不代表差异大。
- R/Python 真交叉核验:
python scripts/r_analysis_crosscheck.py --input results.csv --group method --metric acc --paired-by seed --out r_acc.csv。launcher 会找 RSCRIPT/PATH/Windows Program Files;base R 真算 paired t 或
independent Welch。R 不可用就明确返回 unavailable;复杂 mixed/repeated/nested 设计仍需专门模型。
- 可解释性 / 失败案例 / 泄漏体检:
explain_shap.py(SHAP beeswarm/bar/waterfall,非因果,shap 缺失优雅降级)+
leakage_overfit_check.py(train/val/test gap + 特征-标签高相关泄漏 + 重复行)——指标好得反常先查泄漏。
- 出分析报告:按
assets/result_analysis_report_template.md 每个发现写「现象→原因→证据→对论文的意义」+ 亮点/异常/待补实验清单。
ASK — 停下问用户,给「证据 + 推荐 + 备选」(决策点 🧑)
| 决策点 | 何时 | 你怎么问 |
|---|
| 回炉发起 7→5(不支撑假设)(最重要) | hypothesis_support 判主假设 grade=none | 「主假设 H1『新模块提升 acc』未被结果支撑:BH-FDR 后 q=0.2≥.05、CI=[-0.2,0.4] 含 0、效应量 d=0.1 过小。建议回 research-plan(7→5)重审假设/设计(也许 H 本就不成立,或需更强实验)。回炉带『哪条假设没撑住 + 对应效应量/CI』——还是带病推进 / 转已知局限?(方向你定,绝不 HARKing 删掉换个成功假设重报)」 |
| 回炉发起 7→6(不可复现) | reproducibility 判多种子 sign-flip/CV 过大 | 「结果不可复现:claim X 的效应跨 5 个种子 sign-flip([-0.31,+0.55]),换次跑结论会飘。建议回 experiment-coding(7→6)查种子覆盖 / 实现 bug,带『失败的复现证据』。还是多种子报均值±std 并 hedge?别把单次峰值当结论。」 |
| 查出 p-hacking | stat_validity 多重比较未校正/选择性报告 | 「扫到 5 个比较未做多重比较校正:4 个裸 p<.05 中 4 个经 BH-FDR 后 q≥.05(假阳性)。建议在 stage 7 内重做分析:对全部比较做 BH-FDR,显著性以校正后 q 为准。要我直接重算吗?校正后『显著』可能消失——那才是真值。」 |
| 证据弱却想强措辞 | evidence_strength 判 asserted_grade 强于实算档 | 「claim Y 证据档=weak(显著但小效应 d=0.2),但措辞写了『显著优于』。建议降到『在本实验中略优 / 初步提示』并加 hedge。强措辞会被 research-ethics 的 stage-8 措辞门拦。」 |
| 异常结果:排查 vs 当亮点 | 切片/某指标异常高或异常 | 「切片『夜间』acc 异常高(0.97 vs 整体 0.85)。可能是真亮点(该场景方法特别有效),也可能是泄漏/小样本(该切片 n=12)。建议先查泄漏 + 看 n 再定,别急着写进 contribution。先查哪个?」 |
NEVER — 绝不 [NON-NEGOTIABLE]
这一节是红线,不可协商、不可被「结果好就行」「p<.05 就是显著」「先写强点好发」绕过。违反任一条 = 严重失职。
- 绝不只看 p 不看效应量 + CI:p 值三件套 = p + 效应量(Cohen's d / Cliff's δ)+ 置信区间。p 小不代表差异大(大样本下
微小差异也显著);CI 含 0 = 差异方向不定 = 不显著。只报 p =
evidence_strength warn。
- 绝不多重比较不校正:报多个比较必做 BH-FDR(控 FDR,功效高)或 Bonferroni(控 FWER,保守)。显著性一律看校正后 q
不看裸 p——5 个 p<.05 未校正 → 假阳性概率远超 5%(Simmons 2011:最坏抬到 61%)。未校正 =
stat_validity critical。
- 绝不把不显著当「更好」/ 不显著当亮点:q≥.05 或 CI 含 0 → 证据档 none → 写作只能报**「未见显著差异」**,绝不写「优于/
提升/更好」。不显著的差异不是亮点。
- 绝不让措辞强于证据:措辞强度必须匹配证据强度档(strong→demonstrate/证明、moderate→improve/改善、weak→suggest/可能、
none→「未见显著差异」)。
evidence_strength.json 是跨技能「措辞不强于证据」的单一数据源,下游 paper-writing/research-ethics 据此卡。
- 绝不 HARKing / 选择性报告:假设被结果证否要如实回报(回炉 research-plan),绝不事后删掉它、换个「成功」的假设当
原假设报(Kerr 1998 HARKing 第三型);跑了 N 个比较报全部 N 个(含未达阈值的),不挑成功的报。选择性报告 =
stat_validity critical。
- 绝不把统计检查吹成「证明了方法有效 / 因果成立」:
stat_rigor_gate 查「多重比较校没校正 / 假设统计上撑不撑得住 / 结果稳不稳」——
机检有边界,效应量解读、机制因果、外推性的终判仍需人 / 领域判断;SHAP 是模型关联非因果,绝不当因果证据。诚实标边界。
- 绝不静默回炉:判不支撑假设(7→5)/ 不可复现(7→6)是决策点——带证据停下问用户(回哪 / 带病推进并记录 / 转已知
局限),绝不自己拍板回炉或带病往下走。回炉押上数月方向。
- 绝不把统计行数当统计单位、把 family 拆开校正:
seed/fold/sample 是否独立由设计决定,不由 CSV 行数决定;
repeated measures / clustered / nested CV / repeated holdout 不能靠简单 t 检验终判。comparison family 由结果前计划定义,
必须保留 stable family_id、planned/reported coverage;不得拆成多次调用规避校正。
- 绝不伪造 provenance 接线:
evidence_strength.json 当前只含统计强度与措辞上限,不等于完整 run provenance;
claim/metric 只能带 source file/run/commit 作为 consistency 候选,不得由 result-analysis 直接写入 canonical
.light/consistency。
自检触发词:当你想说「p<.05 就够了别管校正 / 这个不显著但趋势对也算亮点 / 措辞强点好发 / 假设没撑住就换一个 / 跑了十个报最好那个 /
SHAP 说明这个特征导致了结果」——停,八成踩了 NEVER 第 1/2/3/4/5/6 条,或漏了 ASK 的回炉/p-hacking/措辞决策。
指令流:何时调哪个脚本(引擎已就位,亲手 selftest 到 exit 0,直接调用勿重写)
当前 11 个 Python 脚本 + 1 个 R 脚本在 scripts/;stat_rigor_gate/result_card_gate/analyze_results/
analysis_plan_audit 接 _shared(规范 bootstrap),统计件优先复用 statsmodels/scipy,DeLong 港 v1
(statsmodels 没有)。R 路径只依赖 base R;高级 R 包逐项检测,不假装已装。Windows 跑前 set PYTHONUTF8=1。
⓪ result card + analysis decision ledger gate(Round 3 必跑)
python scripts/result_card_gate.py --spec result_card.json \
--report result_card_findings.json --json-out result_card_report.json
输入 light.result_card.v1(模板见 templates/result-card.example.json,故意不完整,直接跑应 exit 1):每条 claim 必须绑定 as_of、target/analysis_set/missingness/provenance/assumption/guardrail_analysis/comparison_family/practical_threshold/effect/language;provenance 至少记录 source run IDs、run manifest/raw result/analysis code locator 与 SHA-256、computed_at、owner_skill;guardrail_analysis 必须显式说明是否适用,适用时绑定 guardrail evidence locator/SHA-256 和逐项 PASS/FAIL/WARN/UNKNOWN;locked_at/results_available_at/computed_at 不能来自未来,且 computed_at 不得早于结果可见时间;decision=REVISION_REQUIRED/UNKNOWN 本身阻断写作交接;decision_ledger 记录 PRE/POST 结果的排除、换指标、模型选择、切片、阈值等分析决策;sensitivity 明确 sensitivity vs supplementary。p=0.049/0.051 不许让叙事翻面:q≥.05 或 CI 含 0 只能写“未见显著差异/不确定”;guardrail FAIL/UNKNOWN 不得 CLAIM_READY;阈值附近必须披露敏感性;POST_RESULTS 的 EXCLUSION/METRIC/MODEL_CHOICE/SUBGROUP 不得冒充 CONFIRMATORY。
① 统计严谨/证据强度 critical 门 → critical fail exit 1(本技能灵魂)
python scripts/stat_rigor_gate.py --spec stat_spec.json --report stat_findings.json --evidence-out evidence_strength.json
python ../light-orchestrator/scripts/run_checkpoint.py --file .light/passport.yaml --stage 7 \
--findings stat_findings.json --write --ts 2026-06-20T10:00
stat_spec.json:{project, claims[{claim_id,p,q_fdr?,effect_size,ci95,n,asserted_grade?,is_hypothesis?,hypothesis_id?,seeds?}], correction(none/bh/bonferroni), comparisons_run?, comparisons_reported?, results_csv?}。示例见 examples/stat_spec.example.json。
② 从结果表算统计 + 产证据工件(被 stat_rigor_gate 可选编排,也可单独跑)
python scripts/analyze_results.py results.csv --group method --metric acc f1 \
--paired-by seed --slice-by subgroup --emit-claim-table --emit-evidence
python scripts/significance_test.py --selftest
python scripts/leakage_overfit_check.py --train tr.csv --test te.csv --target y
python scripts/explain_shap.py
②b 计划/设计/provenance 与 R 交叉核验(Round 2)
python scripts/analysis_plan_audit.py --spec analysis_audit.json \
--report analysis_audit_findings.json --json-out analysis_audit_full.json
python scripts/method_compatibility.py --input examples/method_compatibility.example.json
python scripts/method_compatibility.py --selftest
python scripts/r_analysis_crosscheck.py --input results.csv --group method --metric acc \
--paired-by seed --out r_acc.csv
③ 回炉发起方:本技能把结果送回上游修(7→5 / 7→6)
python ../light-orchestrator/scripts/reroute.py --findings stat_findings.json --stage 7 --passport .light/passport.yaml
python ../light-orchestrator/scripts/passport.py add-back-edge --to 5 --from 7 \
--root-cause "结果不支撑假设(效应量小/CI 含 0)" --evidence-ptr "<reroute 给的指针>"
python ../light-orchestrator/scripts/passport.py validate --file .light/passport.yaml
各脚本 --selftest/--help 即接口;工具一手核(statsmodels multipletests / scipy.stats / pingouin / SHAP 非因果 /
Evidently v7 破坏式变更 / GRADE / Cohen's d·Cliff δ)详见 references.md。
院士级深挖:四条是及格线(蓝图 §4.3-7,不是加分项)
① 解释机制(不只描述好坏)
逐层深入:描述(指标±CI vs baseline)→ 解释(归因到方法哪个组件,结合消融)→ 诊断(哪些证明创新有效、哪些暴露问题/矛盾)
→ 洞察(能成论文亮点的规律、意外发现、可解释性证据)→ 行动(哪些异常要排查、哪些结论需补实验、哪些不能过度声称)。
② claim↔证据绑定 + 证据强度分级(强/中/弱/无)
每条能写进论文的论断连到它的检验/p/q(FDR)/效应量/CI/n(claim_evidence_table.md);经 evidence_contract.grade_evidence
机械定档:strong(q<.01 且 |d|≥.5 且 CI 不含 0 且 n≥30)/ moderate(显著中效应)/ weak(显著但小效应或小样本)/
none(不显著或 CI 含 0)。下游据此校准措辞——这是 evidence_strength.json 的真实第一消费链(paper-writing 也消费)。
③ 统计严谨(效应量/CI/多重比较,不只看 p)
p 值三件套(p + 效应量 + CI);多重比较校正(BH-FDR 控 FDR / Bonferroni 控 FWER,显著性看 q);自动选检验(正态性 +
组数 + 方差齐性,配对设计用配对检验);效应量配检验类型(参数→Cohen's d+Hedges,非参/序数→Cliff's δ 更稳)。统计错误/p-hacking
= critical(spec §4.2)。
④ 院士会追问(预演)
这提升是统计显著还是噪声(看校正后 q,不看裸 p)?效应量多大(d/δ,不只看 p)?换数据集/换种子还成立吗(稳健性、可复现,
多种子报均值±std)?有没有 p-hacking(选择性报告 / 多重比较不校正 / HARKing / garden of forking paths)?——答不上来的,分析没到及格线。
收尾 self-check(出 verdict 前 / 回写总控前过一遍)
名实对齐(诚实,不吹成卖点)
真增量(v2 兑现,已 selftest + E2E 实测):⓪ result card + analysis decision ledger gate(result_card_gate.py,Round 3 新增)——产 light.findings.v1,把 target、analysis set、missingness、provenance、assumptions、guardrail_analysis、comparison family、practical threshold、effect、language 与 PRE/POST 分析决策账本绑定;p≈0.05 的语言稳定性、非显著误释、结果后 confirmatory 伪装、sensitivity/supplementary 混淆、guardrail FAIL/UNKNOWN 后继续强 claim 均可机读阻断。Round 3 再补 raw-run provenance 与时间轴:每条 claim 必须带 source run IDs、run manifest/raw result/analysis code locator 与 SHA-256;locked_at/results_available_at/computed_at 不能未来预填,REVISION_REQUIRED/UNKNOWN 不能冒充 ready,防止孤立数字或未完成结果直接进入写作;Round3 续补 guardrail evidence 消费,防止 experiment-coding 的 guardrails.json 到写作前消失。① 统计严谨/证据强度 critical 门 producer(stat_rigor_gate.py,v2 净新增接线)——
编排 BH-FDR 真重算(裸 p 经校正后掉到 q≥.05 = 假阳性 → critical)+ 消费 _shared/evidence_contract 给每条 claim 定档 → 产
light.findings.v1(producer=result-analysis):多重比较未校正/选择性报告/假设证否/多种子不稳 → critical(对齐
STAGE_GATES[7]=[stat_validity,evidence_strength]),过度解读/效应量缺失 → warn,被 run_checkpoint --stage 7 聚合 exit 1。
② 本技能是 7→5 / 7→6 两条回边的发起方(与 experiment-coding 的「落点」相反)——hypothesis_support 判不支撑假设 → findings 带
「假设/支撑/效应」信号 → reroute 建议 7→5;reproducibility 判多种子 sign-flip/CV 过大 → 带「种子/复现」信号 → 建议 7→6;
p-hacking critical 刻意不带 5/6 信号 → reroute 给 manual(在 stage 7 内修),落点诚实(E2E 三线实测分流正确)。③ 港 v1
统计资产修 bootstrap/命名:stats_tests/significance_test/analyze_results 修硬编码 ../../../code_assets、../../_shared→规范
bootstrap,m06/金矿1/m07/a10→v2 技能名,source:m06:*→result-analysis:*。④ evidence_strength.json 是 result-analysis↔
paper-writing/research-ethics 的桥:本技能定证据强度、research-ethics(stage 8)查措辞是否超过证据,evidence_contract 共用、不重叠。
⑤ DeLong 相关 AUROC 比较港 v1(statsmodels/scipy 没有,自测对齐 sklearn roc_auc_score)。
裸模型本就会的(不吹):「做显著性检验」「报效应量别只报 p」「多重比较要校正」「措辞别太强」「SHAP 非因果」——裸 Opus 都会说,
近零增量。本技能价值 = ① 把 p-hacking/证据强度落成确定性 critical 机读门 + 确定性阻断(裸模型嘴上说「要校正」,手上还是报裸
p<.05 当显著;编排器读不了它的「嘴上说」,读 light.findings.v1 的 verdict);② BH-FDR 真重算判假阳性(不是提醒「记得校正」,是
真算出「这 4 个校正后 q≥.05」);③ claim↔证据档单一数据源(evidence_strength.json 跨 5 个下游技能卡措辞,裸模型每处各凭感觉);
④ 机读 findings + 根因回炉发起(result-analysis 是 7→5/7→6 回炉枢纽,裸模型无此非线性编排闭环)。
诚实落后项(已知没做到):
- 兼容门依赖诚实声明:
method_compatibility.py 能拒绝已知不兼容并暴露未知条件,但不会自动证明
第三方方法声明真实,也不证明统计识别、实现正确、结果可信或因果有效。
- 统计检查有边界,不证明「结论正确」:
stat_rigor_gate 查「多重比较校没校正 / 假设统计上撑不撑得住 / 结果稳不稳」——绝不
「证明了方法真有效 / 因果成立」。效应量解读、机制因果、外推性的终判仍需人 / 领域判断;机检给的是「统计上站不站得住」的必要条件。
- p-hacking 判据靠声明 + 可机检信号:门读方案声明的「跑了几个/报了几个/校没校正」,garden of forking paths 的隐性多重比较
(数据依赖的分析选择)机器测不全,只能提示;不替你判某个分析选择合不合理(GIGO),未声明不编造放水。
- 证据分档只吃统计强度(继承 evidence_contract):未做 GRADE 另四域(偏倚/不一致/间接/发表偏倚)系统降级;多数据集「不一致」
域降级是扩展点,当前不假装 full GRADE。
- 效应量量级阈值是惯例:d 0.2/0.5/0.8 跨领域不同;小样本(n<30)效应量估计不稳,封顶 weak。Cliff's δ 待补(v1/v2 当前只算 Cohen's d)。
- SHAP 非因果、Evidently 版本敏感:SHAP 反映模型学到的关联非因果;Evidently v7.0(2025-04)破坏式变更,旧
DataDriftPreset API
迁到 evidently.future——用前必核版本(铁律 2 一手核出的坑)。两者都不是 critical 门,只作洞察/参考。
- 不自动跑实验 / 不替你下结论:本技能管「结果统计上站不站得住 + 每条 claim 配多强证据」,不替你把实验补完(回炉 experiment-coding),
也不替你拍板因果/机制(那要人 + 领域)。
标准产出工件:结果分析报告(现象→原因→证据→对论文的意义)· claim_evidence_table.md(claim↔证据)· evidence_strength.json
(证据档→措辞档,交 paper-writing/research-ethics)· stat_findings.json(统计严谨/证据强度门)· 推荐图表清单(交 figure)。
亮点 → paper-writing 写作支撑;不支撑假设 → 回 research-plan(7→5);不可复现 → 回 experiment-coding(7→6);结论台账交 memory-pm。
参考(三级渐进披露:需要时再读)