東京都内 全駅総合評価選手権 — 方法論(methodology)
1. 対象駅の確定(PHASE 1)
- 駅網・路線・駅グループコード: 国土数値情報 鉄道データ N02-25(令和7年度版) https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N02-v2_3.html
- 東京都境界: 国土数値情報 行政区域データ N03(令和5年1月1日時点, 13_東京都)
- 東京都内判定: 各駅グループの代表点(同一グループ内の全route-segment中点の平均)が、東京都の
全市区町村ポリゴンのunion(shapely
unary_union)に含まれるかをpoint-in-polygonで判定。 国境・県境付近の駅も含め、印象や知識ではなく座標とポリゴンの厳密な交差判定のみで機械的に決定。 - 同一駅の統合: N02の
groupCode(300m以内・同名の駅を1グループとする公式ルール)をそのまま採用。 AIの主観による追加統合は一切行っていない。そのため東京駅・池袋駅のように、京葉線ホームや 副都心線ホームなど物理的に離れた改札が公式に別グループとして扱われるケースがそのまま残っている (詳細はdata_quality_notes.md参照)。 - 結果: 対象駅656駅(私鉄255・JR単独97・東京メトロ単独83・都営単独58・都電29・モノレール16・ 新交通13、複数事業者乗り入れは組み合わせタグで表現。50市区町村に所在)
2. 乗降客数
- 国土数値情報 駅別乗降客数データ S12-25(令和6年度=2024年データが最新反映年)
- 重要な仕様上の注意点: 各駅グループには年度ごとに「重複コード」(1=当該路線駅に記載/2=他路線駅に
記載/3=駅なし)が付与されており、重複コード=2の行は「データ有無コード=1(データ有)」であっても
乗降客数=0のダミー値が入る。これを見落とすと過大または過小集計になるため、
latest_value>0で 実質的に重複コード=2の0埋め行を除外した上で、駅グループ内の全事業者・全路線の値を合算した。 - 既知の限界: 一部の巨大ターミナル駅(新宿の都営線、東京駅グループ内の一部JR在来線等)では、 重複コード=1の行がその駅グループ内に見当たらず、合算値が対外公表されている総乗降人員より 低くなるケースがある(新宿駅で検証: 算出値約271万人/日 vs 5社公表値合計 約260万〜353万人/日 (2022年度公表値と2024年推定を比較) — 概ね妥当な範囲だが完全一致ではない)。
- 欠損(非公開・データなし)は0でなく空欄のまま保持。
3. 評価対象範囲
- 原則、駅グループ代表点から直線800m。全駅で完全に同一の閾値を使用し、駅ごとの調整は一切行っていない。
- 河川・車両基地等による徒歩アクセス阻害の個別補正(plan.mdセクション5)は、データソースの制約により 今回は反映していない(将来的な改善点)。
4. カテゴリ別データソース
| カテゴリ | 配点 | 主データソース | confidence |
|---|---|---|---|
| 交通利便性 | 20 | N02路線網(直通判定・路線/事業者数)、直線距離+速度想定による所要時間概算、OSMバス停 | B/C/D(所要時間はD=推測) |
| 家賃・住宅 | 15 | 総務省統計局 令和5年住宅・土地統計調査 第48-2表(区市町村単位平均家賃) | C/D、間取り別内訳はX(取得不能) |
| 飲食 | 12 | OpenStreetMap Overpass API(amenity/cuisineタグ) | C |
| 買い物 | 12 | OpenStreetMap Overpass API(shopタグ) | C |
| 娯楽・運動 | 10 | OpenStreetMap Overpass API(leisure/amenity/tourismタグ) | C |
| カフェ・作業 | 6 | OpenStreetMap Overpass API(amenity=cafe, brand/office=coworking) | C |
| 公園・自然 | 5 | OpenStreetMap Overpass API(leisure=park等、ポリゴン面積をEPSG:6677投影で算出) | C |
| 医療・生活インフラ | 5 | OpenStreetMap Overpass API(amenity=hospital/clinic/pharmacy等) | C |
| 治安 | 6 | 警視庁 町丁目別認知件数(2024) を 東京都都市整備局 地域危険度調査の町丁目ポリゴン(5,192区画)で800m圏に面積按分 | B/C |
| 災害リスク | 4 | 東京都都市整備局 地震に関する地域危険度測定調査 第9回(令和4年公表)を同様に800m圏で面積加重平均 | A/C |
| 街の快適性 | 5 | バス停密度・公園数・犯罪件数・路線数の代理指標(直接データなし、最も根拠の薄いカテゴリ) | C/D |
全ての生データはtokyo_station_raw_metrics.csvにsource/data_year/confidenceとともにlong format
(station_id, metric, value, source, data_year, confidence, note)で保持。
5. 取得できなかった項目(0や推測値で埋めていない)
- 始発列車時刻・終電時刻・ピーク/オフピーク運行本数: 無料で全駅共通取得できる時刻表APIが存在せず、 656駅×confidence=X(取得不能)として空欄のまま。
- 間取り別家賃(1K/1DK/1LDK/2DK/2LDK): SUUMO/HOME'S等に無料の公式APIが存在せず、大量スクレイピングは 規約・再現性の両面で不適切と判断し断念。区市町村単位の平均家賃で代替。
- 「安い飲食店」「高評価店」「一人飯向け」等の主観・評価スコアに依存する指標: OSMに信頼できる 価格帯・評価データがないため取得していない。
- 商店街の実態(店舗の雰囲気・個店密度の質的評価): 定量データソースなし。
6. 正規化・採点方法
- 各指標について、656駅中の有効値(confidence=X/欠損を除く)のみを対象にpercentile rank(0-100)を計算。
- 値が小さいほど良い指標(家賃・犯罪件数・災害リスクランク・所要時間)は反転(100-rank)。
- カテゴリ内の複数指標はサブウェイト付きの加重平均でカテゴリスコア(0〜配点)を算出。
- ある駅で特定カテゴリの全指標が欠損の場合、そのカテゴリは除外した上で残りカテゴリの配点合計に対する 比率で100点満点に再スケールする(0点として扱わない)。「対応カテゴリ数」列で各駅が何カテゴリ分の データに基づいてスコアされたかを明示。
- ★1-5特性スコアも同様にpercentile平均→五分位バケットで算出。
7. 既知の限界・注意事項
- 東京駅・池袋駅の分裂: N02の公式グルーピングにより、京葉線ホーム・副都心線ホームなど一部改札が 別駅として登録され、乗降客数等が欠損扱いになっている(主要な改札側のグループは正常にデータあり)。
- 少路線・高密度駅の高評価: 上野御徒町・湯島など乗り換え路線が1本しかない駅が、周辺の飲食・ 商業密度の高さにより総合順位で上位に入るケースがある。これは意図した設計(交通利便性は100点中20点、 飲食・買物・娯楽等の生活利便性カテゴリの合計が45点)によるものであり、知名度や路線数だけで 高得点にならないようにする狙いと整合する。
- 治安・災害の按分値: 町丁目単位の実データを800m円で面積按分した推定値であり、実際の犯罪認知件数 そのものではない(整数にならない)。
- 所要時間: 実際の乗換案内APIを使用していないため、直線距離+平均速度32km/h+乗換1回あたり8分という 単純モデルによる推測値(confidence D)。中心部主要駅間では実際の所要時間と近い値が出ることを 簡易検証したが、郊外や複雑な乗換パターンでは乖離しうる。
- 街の快適性カテゴリ: 歩道幅員・坂・再開発等の直接データが取得できず、代理指標のみで構成した 最も根拠の薄いカテゴリ。
- Phase5詳細検証: 全656駅の上位100駅・上位30駅について、plan.md記載のような個別Web検索による 全数手動検証は本セッションの時間的制約により実施していない。代わりに、新宿駅の乗降客数を 5社公表値と突合する等の統計的整合性検証を実施し、桁・オーダーの妥当性を確認した。
8. 取得日時・再現性
- OSM Overpass APIスナップショット取得日: 2026-08-12(以降の店舗開閉店は反映されない)
- 国土数値情報・警視庁・東京都都市整備局・総務省統計局データはいずれも各機関が定期更新する 最新公開版を使用(具体的な版・年度は上表参照)。
- 全処理はPythonスクリプト(
tokyo-stations/scripts/配下)で実施しており、同一のソースデータを 再取得すれば同じロジックで再現可能。