STEP 1379 — Cohen's d threshold BOTH 経路 (STEP 1376 v0.2)
1. 契機
4 defer 実装後の next candidate として 予告済の v0.2 拡張。 large n で 「p-value は 有意 だが effect size 微小 = 実用的に nothing-burger」 case を BOTH で 明示的に 表現。
Cohen 1988 (Statistical Power Analysis for the Behavioral Sciences) の conventional effect size 分類 (0.2=small / 0.5=medium / 0.8=large) を verdict layer に 引き込み。
2. 実装 (STEP 1376 primitive extension、backward compat 完全維持)
2.1 src/mcp/d8-verdict-mapping.ts 変更
- SamplePairInput に
cohenDMin?: number | nulloptional field 追加 - SamplePairPayload に
cohenDMinUsed: number | null追加 (marker) - mapSamplePairToD8 S5 branch 分岐:
- cohenDMin null → S5 (TRUE for p<alpha、v0.1 mode)
- cohenDMin 有効 かつ |d|<cohenDMin → S5b (BOTH)
- cohenDMin 有効 かつ |d|≥cohenDMin → S5c (TRUE_above_threshold)
- d8SamplePairSpecTable = 8 rules (S1-S6 + S5b + S5c)
- SAMPLE_PAIR_HONEST_SCOPE update = 5/8 activate marker + Cohen 1988 conventional
2.2 決定表 v0.2 (7 rule branches、 first-match priority)
| # | Condition | Verdict | Reason |
|---|---|---|---|
| S1 | sample size < 2 | NEITHER N | insufficient_sample |
| S2 | alpha invalid | NEITHER N | alpha_not_set |
| S3 | var=0 mean=0 | FALSE ⊥ | zero_variance_zero_diff |
| S4 | var=0 mean≠0 | INFINITY ∞ | deterministic_difference |
| S5 | p<α かつ cohenDMin null (v0.1 mode) | TRUE ⊤ | significant_effect |
| S5b ★ | p<α かつ |Cohen d|<cohenDMin | BOTH B | significant_but_tiny_effect |
| S5c ★ | p<α かつ |Cohen d|≥cohenDMin | TRUE ⊤ | significant_effect_above_threshold |
| S6 | p≥α | FALSE ⊥ | no_significant_effect |
2.3 MCP wrapper update
d8_verdict_from_sample_pairinputSchema にcohenDMin: {type: "number"}追加- description update: 7 rule branches 明記、v0.2 activate 5/8 marker、Cohen 1988 conventional threshold 紹介
- case handler:
cohenDMin: a?.cohenDMinpass-through 追加 - Banner: 変更なし (tool count 41 不変、v2.8.4 のまま、STEP 1378 auto-count が semantic 変化を反映)
3. Verify 実測
3.1 STEP 1379 test 39/39 PASS (13 part)
- Part 1 [1-3]: v0.1 backward compat (cohenDMin 未設定 / null / invalid 全て v0.1 mode)
- Part 2 [4-5]: Rule S5b BOTH 経路 (p<α + |d|<threshold)
- Part 3 [6-7]: Rule S5c TRUE_above 経路 (p<α + |d|≥threshold + 境界 case)
- Part 4 [8-11]: S1/S3/S4/S6 pass-through 変わらず (cohenDMin 設定でも 非 S5 branches 影響なし)
- Part 5 [12-13]: spec table v0.2 8 rules + cohenDMinUsed field marker
3.2 STEP 1376 regression 64/64 PASS (v0.2 spec 期待値 update 後)
[14] spec table assertion を v0.2 shape (8 rules、 5/8 activate) に update、他 [1-13, 15-16] 全て backward compat で PASS。
3.3 MCP stdio smoke
call: d8_verdict_from_sample_pair( sample1=[1..10], sample2=[11..20], alpha=0.05, cohenDMin=0.2 ) → verdict = TRUE → reason = significant_effect_above_threshold ★ S5c 発火 → testResult.effectSizeCohenD = -3.30 → cohenDMinUsed = 0.2 (v0.2 marker) → source = welch-t-sample-pair-verdict-mapping ✓ → honestScope embedded (v0.2 5/8 marker) ✓
4. 用途: 「有意 なのに 実用的意味なし」 case の 明示化
4.1 典型 case (large n + tiny effect)
n=1000 each、mean diff = 0.05、variance = 1 の 実験:
- t-stat ≈ 1.12、p ≈ 0.26 (有意でない)
n=10000 each、mean diff = 0.05、variance = 1 の 実験:
- t-stat ≈ 3.54、p ≈ 0.0004 (highly significant)
- Cohen d = 0.05 (Cohen 1988 「negligible」 未満)
- v0.1: verdict = TRUE (significant_effect) — misleading!
- v0.2 with cohenDMin=0.2: verdict = BOTH (significant_but_tiny_effect) — honest
4.2 順序原則 (cohenDMin も 引数注入強制)
alpha 同様、 cohenDMin も module 内 定数化禁止。 pre-registration workflow (STEP 1359 rei-preregister) で 「先に決めた effect size threshold」 を 渡す 設計。 後付けで threshold 動かす 陥落先を 構造的排除。
5. STEP 1350 / 1371 / 1376 v0.2 / 1377 相補構造 (7/8 値 activate 不変)
| STEP | Domain | Activate |
|---|---|---|
| 1350 | single measurement (SNR gate) | TRUE / NEITHER / ZERO / INFINITY / FLOWING |
| 1371 | multi-trial FDR (TS) | TRUE / NEITHER / ZERO / FALSE / BOTH |
| 1376 v0.2 (本 STEP 1379 update) | sample-pair Welch t-test + Cohen d | TRUE / FALSE / NEITHER / INFINITY / BOTH (5/8、 v0.1 4/8 + BOTH) |
| 1377 | multi-trial FDR (Python sibling) | TRUE / NEITHER / ZERO / FALSE / BOTH |
Union 7/8 (SELF のみ 予約) 不変。 STEP 1376 の 個別 activate が 4/8 → 5/8 に 増えたが、 全体 union は 変わらず (BOTH は STEP 1371/1377 で 既 activate 済)。
6. Honest scope
- 「世界初」 主張ゼロ、 Cohen 1988 (37 年前) conventional の verdict layer 適用のみ、 novelty ゼロ
- cohenDMin threshold の 具体値 (0.2 vs 0.5 vs 0.8) は 引数注入、 module 内 定数化禁止 (順序原則)
- Cohen's d は pooled SD 分母、 Hedges' g (small-sample correction) は 未実装 (v0.3 candidate)
- Effect size は 効果量 定量化 の 1 種、 別 尺度 (Glass's Δ / Cliff's δ / eta squared) は scope 外
- backward compat: cohenDMin null/未設定 = v0.1 挙動完全維持、 既存 caller への breaking change ゼロ
- MCP tool count 41 不変、 banner v2.8.4 のまま (STEP 1378 auto-count が semantic 変化を反映、 hardcoded version bump 不要)
7. 関連
- STEP 1376 (2026-08-23) — Welch t-test primitive v0.1、 本 STEP の 直接前身
- STEP 1378 (2026-08-23) — banner auto-count (本 STEP で banner update 不要 の 直接理由)
- STEP 1350 / 1371 / 1377 — 相補 domain primitives
- STEP 1358 (2026-08-21) — Statistics × NEITHER Education v0.2 (Welch 実装源)
- STEP 1359 (2026-08-21) — rei-preregister (cohenDMin pre-registration workflow candidate)
- Cohen 1988 「Statistical Power Analysis for the Behavioral Sciences」 (conventional threshold origin)
feedback_super_naming_siren_family_pattern— 「Cohen d = 効果量」 の 名前と 実態 の 一致確認