TL;DR
- E-Stat(政府統計)の354指標 x 47都道府県で相関分析すると、「人口が多い県は何でも多い」しか出てこない
- そこで**「裏切り度スコア」**を設計。全国の傾向から外れた県だけを検出する
- per capita正規化で人口規模効果を除去した結果、沖縄・徳島・島根・長野など構造的に独自の県が浮上
- 長野県の公民館数は全国モデルから5.5シグマの上振れ。なぜ長野だけ公民館が多いのか?
※
ググってみると、長野・徳島・福井の特徴は知られた事であったが、、、
「差分の差」を「隣接県」で見る方がいいのかも?北陸3県で過去にしていた手法ではあるが・・・
1. 問題:全探索は「常識の再発見」を生む
E-Statは17分野・数千指標の政府統計が無料で使える宝の山だ。
APIで全データを取得し、総当たりで相関分析すれば「意外な発見」があるのでは?
...と思ってやってみた結果がこれ。
最初の試み:354指標の総当たり相関
裏切りイベント: 23,477件検出
1位: 東京都(5,362回)
2位: 神奈川県(4,119回)
3位: 大阪府(2,851回)
人口が多い県が全てを支配している。
「東京都は病院も多いし、学校も多いし、空き家も多い」── そんな当たり前の事実が2万件以上出てきただけだった。
これが全探索の罠だ。
スコアが高いほど「常識的な因果」になりやすい。
全探索は「人間の常識に最適化されたランキング」を作ってしまう。
2. 発想の転換:相関ではなく「裏切り」を測る
必要なのは相関の強さではない。
「そうなるはず」という期待を、データがどれだけ裏切ったか
を測ることだ。
裏切り度スコアの定義
裏切り度 = |実測値 - 期待値| / 残差の標準偏差
期待値とは何か?
全47都道府県で線形回帰を引いた予測値だ。
つまり「全国の傾向に乗っていれば、この県はこの値のはずだ」という常識モデルの予測。
そこから大きく外れた県だけを検出する。
3層の常識モデル(設計思想)
| Layer | 常識の種類 | 実装 | 今回 |
|---|---|---|---|
| A | 単変量常識(X↑ → Y↑) | 線形回帰 | 実装済み |
| B | カテゴリ常識(同分野=似た挙動) | 分野間フィルタ | 実装済み |
| C | 時系列常識(急変しない) | ラグ比較 | 未実装(要複数年データ) |
今回はLayer A + Bを実装した。
3. 改善:per capita(比率化)正規化で人口規模効果を除去
最初の分析が人口に支配されたのは、指標が絶対値だったからだ。
「病院数100」が東京と鳥取では全く意味が違う。
解決策:人口1万人あたり(per capita)に変換する。
# 正規化の判定ロジック
# - 「率」「指数」「中位数」「面積」系 → そのまま
# - それ以外でmax/min > 10 → 人口1万人あたりに変換
normalized\\\[col] = df\\\[col] / population \\\* 10000
354指標のうち217指標をper capita化、残り137指標(率・面積・時間配分等)はそのまま使用した。
4. 結果:「独自の道を行く県」が浮上
per capita正規化後の結果。
都道府県別「裏切り回数」ランキング
| 順位 | 都道府県 | 裏切り回数 | 平均裏切り度 | 最大裏切り度 |
|---|---|---|---|---|
| 1 | 東京都 | 423 | 3.82 | 5.89 |
| 2 | 沖縄県 | 347 | 3.22 | 5.55 |
| 3 | 徳島県 | 310 | 2.98 | 4.18 |
| 4 | 島根県 | 242 | 2.98 | 4.51 |
| 5 | 高知県 | 228 | 2.97 | 4.07 |
| 6 | 鳥取県 | 162 | 3.41 | 4.68 |
| 7 | 大阪府 | 150 | 3.33 | 4.90 |
| 8 | 山梨県 | 115 | 2.97 | 4.30 |
| 9 | 鹿児島県 | 102 | 2.79 | 3.71 |
| 10 | 長野県 | 98 | 3.92 | 5.53 |
Before(正規化なし)では東京・神奈川・大阪が上位を独占していた。
After(per capita)では沖縄・徳島・島根・高知といった「構造的に独自の県」が浮上した。
東京は依然1位だが、回数は5,362→423に激減。
残った423件は人口では説明できない真の異常値だ。
裏切りの具体例:「なぜこの県だけ?」
長野県:公民館が異常に多い(裏切り度5.5)
全国モデルの予測: 人口1万人あたり公民館 1.1~2.1
長野県の実測: 人口1万人あたり公民館 8.7
→ 予測の4~8倍。5.5シグマの上振れ。
長野県は人口あたり公民館数が全国平均の数倍ある。
これは空き家率や小学校数など、どの指標から予測しても一貫して「多すぎる」。
信州における公民館活動の歴史的な根強さが統計に表れている。
沖縄県:労働力あたりの空き家構造が独自(裏切り度5.5)
全国モデル: 労働力人口(男)↑ → 空き家(cat9\\\_3)は微増
沖縄県の実測: 予測の約4倍の空き家数
→ 労働力はあるのに空き家が多い独自構造
本土とは異なる住宅事情(米軍基地、リゾート開発、島嶼部の空き家等)が影響している可能性がある。
徳島県:人口あたり薬剤師数が突出(裏切り度4.2)
全国モデル: 住宅数↑ → 薬剤師数↑(人口あたり)
徳島県: 全国傾向から大きく上振れ
→ R²=0.35の安定した傾向があるのに、徳島だけ外れる
薬大(徳島文理大など)があるため薬剤師輩出数が多いよう
福井県(北陸):就業者数あたりの空き家パターンが特殊(裏切り度3.3)
全国モデル: 就業者数(per capita) → 空き家(cat11\\\_3)は微増
福井県: 予測がほぼゼロなのに実測あり
→ 共働き率全国トップクラスの福井ならではの現象?
分野ペア別「裏切りやすさ」
どの分野の組み合わせで裏切りが多いか。
| 分野ペア | イベント数 | 平均裏切り度 |
|---|---|---|
| 居住 x 福祉社会保障 | 518 | 2.99 |
| 居住 x 健康医療 | 451 | 3.15 |
| 労働 x 居住 | 406 | 3.55 |
| 人口 x 居住 | 315 | 3.31 |
| 教育 x 居住 | 263 | 2.99 |
「居住」が絡む組み合わせが圧倒的に多い。
住宅事情は地域の個性が最も出やすい分野だ。
5. なぜ「裏切り度」が全探索より優れているか
| 観点 | 全探索(相関ランキング) | 裏切り度スコア |
|---|---|---|
| 上位に来るもの | 常識的な因果 | 常識からの逸脱 |
| 人口の影響 | 支配的 | per capitaで除去 |
| 発見の質 | 「知ってた」が多い | 「なぜこの県だけ?」が出る |
| 行動への繋がり | 薄い | 深掘り調査の起点になる |
裏切り度は「問い」を生成する指標だ。
相関分析が答えを出そうとするのに対し、裏切り度は「ここを調べろ」という指針を出す。
6. 実装
技術スタック
- Python (pandas, scipy, numpy)
- E-Stat API(データ取得)
- 47都道府県 x 354指標(13分野)
データパイプライン
E-Stat API → fetch\\\_national\\\_6domains.py → 生データ(109,041行)
↓
build\\\_analysis\\\_ready.py → pref47\\\_all.csv(47県 x 354指標)
↓
betrayal\\\_score\\\_analyzer.py → 裏切りイベント(2,921件)
核心のコード(裏切り度計算)
# 各指標ペアで線形回帰 → 残差の標準化
slope, intercept, r\\\_value, \\\_, \\\_ = linregress(x, y)
r2 = r\\\_value \\\*\\\* 2
if r2 < 0.15: # 全体に傾向がないなら裏切りもない
continue
y\\\_pred = slope \\\* x + intercept
residuals = y - y\\\_pred
z\\\_scores = residuals / np.std(residuals)
# |z| >= 2.5 → 裏切りイベントとして記録
フィルタ条件
| フィルタ | 値 | 理由 |
|---|---|---|
| 最低有効都道府県数 | 40/47 | 欠損が多い指標は除外 |
| 最低R² | 0.15 | 傾向がないペアは裏切りもない |
| 裏切り度閾値 | 2.5 | 標準偏差の2.5倍以上 |
| 同分野ペア | 除外 | 当たり前の相関を排除 |
7. 限界と今後
今回できなかったこと
- 時系列裏切り度(Layer C): 今回は最新年1時点のみ。複数年データがあれば「昨年まで成立していた関係が今年壊れた」を検出できる
- 分布裏切り度: 分位点回帰で「上位20%だけ逆」を検出。47点では精度が限定的
- 因果の解釈: 裏切り度が高い理由をAIが自動で言語化する仕組み
応用可能性
- 地方自治体の政策評価(「なぜうちの県だけ?」の定量化)
- 経済レポートのネタ探し
- E-Statに限らず、任意の大規模社会データに適用可能
8. まとめ
- E-Statの全探索は「人口が多い県は何でも多い」という常識を再発見するだけ
- 裏切り度スコア = |実測 - 期待| / 不確実性 で「常識からの逸脱」を定量化
- per capita正規化で人口規模効果を除去すると、沖縄・徳島・島根・長野など構造的に独自の県が浮上
- 裏切り度は「答え」ではなく「問い」を生成する。深掘り調査の起点として機能する
全探索は意外性を殺す。
意外性は「期待とのズレ」から生まれる。
使用データ: e-Stat 社会・人口統計体系(47都道府県 x 354指標、13分野)
コード: Python / pandas / scipy / E-Stat API