docs/design/st_estimation.md の検証計画 Phase 1 の実施記録。
正解データ(実測 ST)のパネルを構築して前処理ルールを確定し、ベースライン
B0(公表 全国平均 ST)/ B1(スタート展示 ST そのまま)の指標値を固定した。
以後の仮説検証(Phase 2)はこの数字との比較で判断する。
python notebooks/st_estimation/build_panel.py → python baseline_metrics.py
(リポジトリの data/ を直接読む。中間生成物 st_panel.csv.gz 約 3.9MB は
再生成可能なためコミットしない)data/results/realtime(実測 ST・実進入コース・F)+ data/programs/race_cards
(公表 全国平均 ST・級別・F 本数)+ data/previews/stt(展示 ST・展示進入コース)を
レースコード × 艇番 で結合した 1 艇走 = 1 行のパネル。気象列(風向・風速・波高・天候)と
決まり手も保持し、Phase 2 の H5(気象)にそのまま使える。
| 項目 | 値 |
|---|---|
| 期間 | 2025-11-01 〜 2026-07-20(約 8.5 ヶ月) |
| レース数 | 39,081 |
| 艇走数 | 234,061 |
| 選手数 | 1,639(選手あたり出走数 中央値 141 走) |
| 実測 ST 平均 ± SD(F 除外) | 0.164 ± 0.072 秒 |
設計書 §2.1 では蓄積を「2.5〜3 ヶ月・5〜9 万艇走」と見積もっていたが、実際は 8.5 ヶ月・23 万艇走で 想定の約 3 倍。選手×コース別の縮約推定にも現実味がある。
Nコース_F 列は docs の記述(1=フライング/0=正常)と異なり、
実データでは 文字 "F" / 空欄。F 艇の Nコース_スタートタイミング は 負値
(853 件、範囲 -0.14〜-0.01)。F マーク無しの負値 ST も 7 件あり(データ側の癖)、
正解からは「F または ST<0」をまとめて除外する
→ docs/data/results.md の記述を実態に合わせて修正済み- の 5 件のみ。race_cards と結合できない艇走が
4,849 件(2.1%)、stt が無いレースが 8.0%F マーク無し ∧ ST 数値 ∧ ST ≥ 0 の実測 ST(234,061 → 233,196 艇走)B0 = 公表 全国平均 ST(0.00/欠損は 0.25 補完 = NO_RECORD_ST_FALLBACK)。
B0raw = 補完なし(H6 修正前の距離計算相当)。B1 = 展示 ST そのまま。
| 指標 | B0 (daily) | B0raw (daily) | B0 (realtime) | B1 (realtime) |
|---|---|---|---|---|
| MAE | 0.0548 | 0.0581 | 0.0544 | 0.1221 |
| RMSE | 0.0714 | 0.0783 | 0.0708 | 0.1517 |
| バイアス | +0.003 | -0.007 | +0.002 | -0.086 |
| スリット順位 Spearman ρ | 0.226 | 0.202 | 0.227 | 0.081 |
| 先頭艇一致率 | 23.4% | 22.5% | 23.5% | 22.4% |
| 隊形3分類一致率 | 42.7% | 40.8% | 42.7% | 32.5% |
| 指標 | B0 (daily) | B0raw (daily) | B0 (realtime) | B1 (realtime) |
|---|---|---|---|---|
| MAE | 0.0526 | 0.0547 | 0.0522 | 0.1123 |
| Spearman ρ | 0.231 | 0.201 | 0.231 | 0.083 |
| 先頭艇一致率 | 24.1% | 23.3% | 24.1% | 22.7% |
| 隊形3分類一致率 | 43.4% | 41.4% | 43.3% | 32.6% |
補足:
| 観察 | 値 | 示唆 |
|---|---|---|
| 公表平均 ST と実測の相関(艇走レベル) | 0.237 | 現行予測子は弱い。改善余地大 |
| 同(選手レベル、30 走以上) | 0.496 | 公表値は選手平均としてもノイジー |
| 選手内の期間安定性(前半 4.5 ヶ月平均 vs 後半、各 15 走以上の 1,577 名) | 0.772 | H1 の根拠。実測履歴の選手平均は公表値(0.496)より大幅に安定した予測子になる |
| 実進入コース別の実測 ST 平均 | 1c: 0.152 / 2c: 0.164 / 3c: 0.159 / 4c: 0.162 / 5c: 0.166 / 6c: 0.183 | H2 の根拠。ただし定説(カド最速)と異なり 1 コースが最速・6 コースが突出して遅い。コース補正は「6 コース +0.02」が主効果 |
| 級別の実測 ST 平均 | A1: 0.146 / A2: 0.161 / B1: 0.172 / B2: 0.187 | H6(級別事前分布)の根拠。スプレッド 0.041 秒 |
| F 本数別の実測 ST 平均 | F0: 0.161 / F1: 0.180 / F2: 0.217 | H4 の根拠。F1 +0.018、F2 +0.056 と大きい |
| 公表 ST = 0.00 艇の実測平均 | 0.197(4,067 艇走) | 0.25 補完は方向は正しいがやや遅すぎ。級別補完なら 0.19 前後が妥当(H6 後半) |
| 選手内 ST 標準偏差(中央値) | 0.068 | 1 走の ST はノイズ大。展示 1 本(H3)を強く信じられない理由 |
追記 (2026-07-20): Phase 2 実施済み。結果は
phase2_report.md。 下記の MAE -10% 目標はオラクル床(0.0486)を下回る誤設定だったことが判明している。
results/realtime に行がある確定レースのみ(中止・順延は含まれない)