コンテンツへスキップ

閉業ベンチマーク

「撤退した店の立地」と「続いている店の立地」を、出店スコアはどれだけ区別できるか。 OpenStreetMap の閉業タグを成果ラベルにした検証セットと、依存のない採点器を公開します。 LiveCity のスコアも参加者のひとつとして同じ採点器を通します。他社・自作のスコアも、同じ行に点を付ければ同じ土俵で測れます。

いま言えること
  • ・LiveCity v5 の立地スコアの fresh AUC は 0.558 [0.53, 0.586](2026-08-18・25 都市・存続 6,796 / 閉業 468)。 区間が 0.5 を超えているので偶然ではないが、実務的には「偶然よりわずかに良い」水準です。 この数字で「当たる」とは言いません。
  • ・弱い数字を公開する理由は、測り方を揃えるためです。出店スコアの精度を同じ検証セットで 公開している事業者は、私たちの知る限りまだありません。
  • ・配布中のデータセットは 1 都市・1,324 行の予備版です。上の fresh AUC を出した 25 都市分ではありません(手元の検証セットを書き出すと差し替わります)。 fresh 行が 0 行のため、配布版だけでは公開値 (fresh AUC) は出ません。

配布物(closure-benchmark-v1)

行数
1,324
都市
1
存続 / 閉業
1,276 / 48
fresh 行
0(0 都市)

書き出し: 2026/10/2 15:04:53 · モデル版 free-report/monte-carlo-v5 · 成分選定スナップショット: なし(split は unknown)

ライセンス: ODbL 1.0 (© OpenStreetMap contributors). 派生データベースのため同じライセンスで配布します。

層行閉業都市
三大都市圏 × 政令市・特別区1,324481

成績(同じ採点器で)

提出対象AUC [95%]N 存続 / 閉業
LiveCity free-report/monte-carlo-v5手元の fresh 検証セット(2026-08-18・25 都市)
精度スコアボードと同じ記録。配布セットからの再計算ではない。
0.558 [0.530, 0.586]6,796 / 468
 三大都市圏 × 市0.578 [0.547, 0.608]5,966 / 377
 地方 × 市0.464 [0.403, 0.525](0.5 を含む)830 / 91
LiveCity free-report/monte-carlo-v5配布データセット · fresh 行(公開値)判定不可(閉業 0 件 < 20)0 / 0
配布データセット · 全行(参考・選定行や split 不明行を含むため楽観的)0.653 [0.567, 0.739]1,276 / 48

他の提出はまだありません。提出は下の形式で、GitHub の Pull Request か問い合わせで受け付けます。 提出者の自己申告(fresh 行で調整していないか)をそのまま併記します。

検証して不採用にした成分

効いたものだけを載せると、都合の良い結果だけ選んで報告しているのと見分けがつきません。 採用しなかった候補も、測る前に決めた条件とともにここに出します。

周辺の商業床(国土交通省 PLATEAU の建物用途 × 延べ床推計、半径 300m)不採用

2026-10-02 測定(building-stock-v1)。成分の定義・36 都市の選び方と探索/確認の割り付け・採用条件は、 測る前に固定しました。判定は確認群だけで行います。

確認群 15 都市 · この成分単独の AUC0.502 [0.472, 0.532]
同じ地点での現行スコア (v5)0.580 [0.550, 0.610]
現行スコア × この成分0.560 [0.530, 0.590]
存続 / 撤退(成分の信号がある地点)10,571 / 372
  • 主成分の B 群 AUC は 0.5019 [0.472, 0.5318] で、区間の下限が 0.5 を超えていません。
  • v5 × 建物倍率 の AUC (0.5596) が v5 単独 (0.5803) を上回りません。
  • 探索群(16 都市)では逆向き(0.362 [0.341, 0.383]・商業床が多いほど撤退が多い)でしたが、 確認群では再現しませんでした。向きを後から反転させて採用することはしていません。

売上予測には入れていません。レポートでは「周りがどんな街か」の記述としてだけ表示し、そこにこの判定を併記しています。

採点の規約

  1. 各行に 1 つのスコアを付ける (高いほど存続しやすい立地と読む)。
  2. 全行に付ける。採点できない行は分母から外さず、採点不能として申告する。
  3. 評価は pooled AUC (都市別 AUC の平均ではない) と Hanley–McNeil の 95% 区間。層別の内訳を併記する。
  4. 公開値は split=fresh の行だけで出す。selection 行は学習・調整に使ってよい。fresh 行で調整した提出は fresh と名乗らない。
  5. 片側のクラスが 20 件未満の層は AUC を出さない (0.5 を代わりに置かない)。
採点のしかた(依存ゼロ・Node 18 以上)
# 提出 CSV は row_id,score の 2 列。全行ぶん。採点できない行は score を空にする。
node scripts/score-benchmark.mjs public/benchmark/closure-benchmark-v1.csv my-scores.csv

# 提出を省くと LiveCity v5 の列 (lc_score_v5) を採点する
node scripts/score-benchmark.mjs public/benchmark/closure-benchmark-v1.csv

AUC は Mann–Whitney U、区間は Hanley & McNeil (1982)。採点器の実装は製品内の実装と一致することをテストで固定しています。

この検証の限界(全提出に等しくかかる)

  • ・ラベルは OSM の閉業タグであり、閉業の網羅率は地域・編集者の密度に依存する。タグの無い閉業は存続側に混ざっている。
  • ・測れるのは「今」の周辺環境で、閉業した時点の環境ではない (時間のリーク)。閉業が相次いだ地域は現在の密度が下がっており、因果が逆の可能性がある。
  • ・存続側は「撤退が観測された業種」に限っている。撤退の無い業種は含まない。
  • ・都市の中心は自治体の重心からの半径で切っており、商業中心を網羅していない都市がある。
  • ・AUC は順位の識別力であり、売上の水準 (いくらか) の精度ではない。