# 検証パック: 番手の連対率、2車ラインと3車ラインの比較

このディレクトリは、KEIRINCRAFTブランドの記事「番手の連対率、2車と3車で倍以上の差｜同じ「番手」でも意味が違うと実データが示す」で示した数値の集計根拠を公開するものです。集計定義・再現用SQL・集計結果・公開時点との差異確認用ハッシュ値を含みます。

## 集計定義

- **データベース**: KEIRINCRAFTデータベース(公開されている競輪レース結果を集計したもの)
- **対象テーブル**: keirin_entries(出走・ライン情報)、keirin_races(レース情報)、keirin_results(着順情報)
- **母集団**: keirin_races.status='finished'(確定レース) かつ keirin_races.is_girls=false(男子) かつ keirin_races.num_cars=7(7車立て)。ライン人数(line_len)が2または3のポジション(line_pos)を対象
- **集計期間**: 2021年6月22日〜2026年8月17日(データベース収録全期間)
- **指標**: ライン人数×ポジションごとの、レース数(n)・1着率(win_rate)・2連対率(place2_rate)・3連対率(place3_rate)

## 集計日時・データ基準日

- **集計実行日**: 2026年8月17日
- **データ基準日**: 2026年8月17日

## 除外条件

- ガールズ競輪(is_girls=true)は除外
- 7車立て以外(num_cars≠7)は除外
- 未確定レース(status≠'finished')は除外
- ライン人数が2・3以外(単騎、4車ライン等)の行は本集計の対象外(line_len IN (2,3)で絞り込み)

## 再現手順

1. `query.sql` を、KEIRINCRAFTの本番データベース(PostgreSQL)に対して読み取り専用権限で実行します。接続情報はこのパックには含みません。
2. 実行結果が `result.json` の `by_line` 配列(line_len・line_posの組み合わせごとに5行)と一致します。
3. `manifest.sha256` を使い、お手元の `query.sql` `result.json` `README.md` のSHA-256を、当社が公開時に記録したmanifestと照合することで、公開時点のファイルとの差異を確認できます。

## 注記(限界・補足)

- 同一定義で数時間前に取得した集計(記事no62)ではn=106,049でしたが、本集計(同日午後に再実行)ではn=106,051でした。これは実行の間にレースが確定し2件増えたためで、いずれも2026年8月17日基準の実測値です。
- どの選手が2車ライン・3車ラインを組むかは選手同士の関係・力量・作戦で決まるため、この集計は「3車ラインを組めば誰でも強くなる」という因果関係を示すものではありません。強いメンバーが3車ラインを形成しやすいという選択効果を含んでいる可能性があります。
- 回収率・買い目の有利不利については扱っていません。
- 参考値として記事本文に掲載した「7車立ての等確率基準値14.29%」はデータベースからの集計値ではなく、1/7の算術計算です。

## ファイル一覧

- `README.md` — 本ファイル
- `query.sql` — 再現用SQL(接続情報等の機密情報を除去済み)
- `result.json` — 集計結果(数値は原本から改変していません)
- `manifest.sha256` — 上記3ファイルのSHA-256ハッシュ値
