mcpbeat

Light Result Analysis

light0305/light-result-analysis

>- 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(不可复现)回炉发起方**。

70k tokens
context cost
the whole folder, loaded on every use
21
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
505
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Light0305/Light-skills --skill light-result-analysis

The instruction itself

15 sections, as written by the author

结果分析(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 1evidence_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-tableclaim_evidence_table.md:每个比较↔检验/p/q/d/CI/n)+

--emit-evidenceevidence_strength.json:挂接 _shared/evidence_contract,q/效应量/CI→证据档+措辞档)。**显著性一律以

BH-FDR 后 q 为准**,不显著的比较标「不得声称更好」。

  • 效应量 + CI + DeLongsignificance_test.pycohens_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_oftarget/analysis_set/missingness/provenance/assumption/guardrail_analysis/comparison_family/practical_threshold/effect/languageprovenance 至少记录 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(本技能灵魂)

# 编排 BH-FDR 真重算 + 消费 evidence_contract → light.findings.v1 + evidence_strength.json:
python scripts/stat_rigor_gate.py --spec stat_spec.json --report stat_findings.json --evidence-out evidence_strength.json
# 交总控聚合(stage 7 确认点,critical fail → exit 1 确定性阻断):
python ../light-orchestrator/scripts/run_checkpoint.py --file .light/passport.yaml --stage 7 \
    --findings stat_findings.json --write --ts 2026-06-20T10:00
# p-hacking critical = 在 stage 7 内重做分析(reroute 给 manual);不支撑假设/不可复现 = 发起回边(见 ③)。

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   # 自动选检验+效应量+FDR+两工件
python scripts/significance_test.py --selftest      # p/d/CI/FDR/DeLong 函数库(对齐 scipy/statsmodels)
python scripts/leakage_overfit_check.py --train tr.csv --test te.csv --target y   # 泄漏/过拟合体检
python scripts/explain_shap.py                      # SHAP 三图(非因果;shap 缺失优雅降级 exit 0)

②b 计划/设计/provenance 与 R 交叉核验(Round 2)

# warn-only:缺计划锁/复杂设计/family/coverage/provenance 显式出现,但不扩大 critical 阻断面
python scripts/analysis_plan_audit.py --spec analysis_audit.json \
  --report analysis_audit_findings.json --json-out analysis_audit_full.json

# 声明方法能力与真实研究条件;FAIL/UNRESOLVED 都不得直接用该方法终判
python scripts/method_compatibility.py --input examples/method_compatibility.example.json
python scripts/method_compatibility.py --selftest

# 同一真实两组比较走 base R;关键 p/mean_diff/effect 与 Python 交叉核数
python scripts/r_analysis_crosscheck.py --input results.csv --group method --metric acc \
  --paired-by seed --out r_acc.csv

③ 回炉发起方:本技能把结果送回上游修(7→5 / 7→6)

# stat_rigor_gate 判"不支撑假设/不可复现" → findings 带信号词 → 总控 reroute 按 ROUTES[7] 分流:
python ../light-orchestrator/scripts/reroute.py --findings stat_findings.json --stage 7 --passport .light/passport.yaml
#   不支撑假设(信号 假设/支撑/效应)→ 建议 7→5 回 research-plan;不可复现(信号 种子/复现)→ 建议 7→6 回 experiment-coding。
# 用户拍板回炉后落一等回边(记在目标阶段,不破拓扑):
python ../light-orchestrator/scripts/passport.py add-back-edge --to 5 --from 7 \
    --root-cause "结果不支撑假设(效应量小/CI 含 0)" --evidence-ptr "<reroute 给的指针>"   # 或 --to 6(不可复现)
python ../light-orchestrator/scripts/passport.py validate --file .light/passport.yaml      # 回边不破拓扑 → 仍 PASS

各脚本 --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 前 / 回写总控前过一遍)

  • [ ] 每条 claim 都配了 p + 效应量 + CI 三件套,且显著性看 BH-FDR 后 q 不看裸 p 吗?
  • [ ] 跑过 result_card_gate.py 吗?每条 claim 的 target、analysis set、missingness、assumption、guardrail_analysis、family、practical threshold、effect、language 都绑在一张 result card 上了吗?
  • [ ] as_oflocked_atresults_available_atcomputed_at 都是真实已发生时间吗?分析没有早于结果可见、也没有未来预填吧?
  • [ ] 每条 result card 的 effect 是否绑定 source run IDs、run manifest/raw result/analysis code 的 locator 和 SHA-256?孤立数字有没有被挡住?
  • [ ] decision_ledger 写清 PRE/POST 结果的排除、换指标、模型选择、切片、阈值了吗?POST_RESULTS 决策没冒充 CONFIRMATORY 吧?
  • [ ] 多个比较做了多重比较校正(BH-FDR/Bonferroni)吗?跑了几个报了几个(没选择性报告)吗?
  • [ ] 不显著的结果只报「未见显著差异」、没当「更好/亮点」吗?措辞强度匹配证据档吗?
  • [ ] p/q 在 0.045~0.055 附近时,写了“阈值敏感/不确定”,而不是围绕 0.05 把语言翻成“显著提升”吗?
  • [ ] evidence_strength.json 产了吗(每条 claim 有档 + 措辞上限,交 paper-writing/research-ethics)?
  • [ ] analysis plan 在结果前冻结了吗?unit_of_analysis、复杂设计、comparison family_id、planned/reported

coverage、raw result hash/run manifest/commit 都留痕了吗?

  • [ ] 给了 --paired-by 时,claim/evidence 是否只有 paired 主比较、没有同一数据再产 independent duplicate claim?
  • [ ] R 可用时是否对关键比较真交叉核验;不可用时是否如实记录 detection/degradation,而非写“R E2E 通过”?
  • [ ] 主假设被结果支撑吗?不支撑就停下问用户回 research-plan(7→5)、没 HARKing 换假设吗?
  • [ ] 结果多种子稳吗(无 sign-flip / CV 在阈内)?不稳就停下问用户回 experiment-coding(7→6)吗?
  • [ ] 指标好得反常的,查过泄漏(leakage_overfit_check)吗?
  • [ ] 没把统计检查吹成「证明了方法有效/因果成立」吧?(SHAP 非因果;机制/因果终判需人)

名实对齐(诚实,不吹成卖点)

真增量(v2 兑现,已 selftest + E2E 实测):⓪ result card + analysis decision ledger gateresult_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 门 producerstat_rigor_gate.pyv2 净新增接线)——

编排 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→5reproducibility 判多种子 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。


参考(三级渐进披露:需要时再读)

  • 对标真相源:docs/competitors/result-analysis.md(Round 2 真搜:

8 个真同类 SKILL + statsmodels/scipy/base R/规范等机制锚;每条带整仓 star、commit、路径、行号)

  • 真实用户资源闭环:result-analysis-resource-map.md(分析计划→raw runs→

设计感知统计→稳健性→claim/provenance→总控;含 Python/R 双路径与资源访问分级)

  • 工具一手核查笔记(真实命令/机制/已知坑/版本敏感):references.md
  • 引擎脚本:scripts/——各 Python 脚本 --selftest/--help 即接口,R 脚本有 --selftest

stat_rigor_gate.py(critical 门)、analysis_plan_audit.py(warn-only 计划/设计/provenance)、

method_compatibility.py(方法×数据×访问条件兼容门)、

analyze_results.py(设计感知检验+FDR+两工件)、r_analysis_crosscheck.py/.R(base-R 交叉核验)、

significance_test.py(p/d/CI/FDR/DeLong)、make_figs.py/explain_shap.py/leakage_overfit_check.py

  • 报告模板:assets/result_analysis_report_template.md(四段式 + 亮点/异常/待补实验 + 回炉判定)
  • 端到端范例:examples/worked_example.py(EDA→显著性→图→泄漏体检→报告)· examples/stat_spec.example.json(stat_rigor_gate 输入)
  • 方法适用性示例:examples/method_compatibility.example.json
  • 地基契约:_shared/README.mdevidence_contract 核心消费 · findings_schema · gate_runner · 规范 bootstrap)
  • 上游/下游:light-experiment-coding(stage 6,run_manifest.md 多种子指标;7→6 回炉目标)·

light-research-plan(stage 5,7→5 回炉目标)· light-research-ethics(stage 8

claim_evidence_bind 消费 evidence_strength.json 查措辞)· run_checkpoint.py(stage 7 聚合 exit 1)·

reroute.py(ROUTES[7] 两条出边 7→5/7→6)· paper-writing(stage 8,据证据档校准措辞)

How to use it

Copy the folder

Take light0305/light-result-analysis from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.