0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【e-Stat×AI】「同じ人口・同じ地域」で所得格差83倍。データが暴いた「過疎でも勝つ自治体」の勝ちパターン

Last updated at Posted at 2026-01-24

~前回の結論をひっくり返して、データ分析の新境地へ~

はじめに:前回からの方針転換宣言 😅

前回投稿:e-statの魔境にAIと挑んだら、データ準備の『だるさ』をpipeline・並列処理でねじ伏せられた話

前回の投稿で私はこう言いました。

「意味のある組合せでデータ分析しましょう!」

今回、真逆のアプローチをとります。

なぜか?

AIはデータの組合せを試すのが大得意で、材料科学の世界では新素材がボコボコ発見されているらしい。

ならば、

自治体ビジネスのネタとしても「新素材」を探せるのでは? と考えたからです。

結論から言うと、大発見がありました


Part 0:挫折編 ~ 東京と沖縄を比べても仕方がない

最初の失敗

e-Statから1,911自治体のデータを取得し、意気揚々とクラスタリングを実行。

# KMeansでクラスタリング
kmeans = KMeans(n\_clusters=5, random\_state=42)
clusters = kmeans.fit\_predict(X)

結果を見て愕然としました。

クラスタ2: 東京都特別区(課税対象所得 286億円)
クラスタ0: 沖縄県の離島(課税対象所得 3億円)

「東京都と沖縄で差がつくのは当たり前じゃん😅」

これは比較として意味がない
人口差、立地差、産業構造の差が大きすぎて、何の示唆も得られない。

データ分析あるある:条件が違いすぎるものを比較してしまう問題


気づき:「同じ条件で成果が違う」を見つけるべき

考え直しました。

本当に知りたいのは、**「同じような条件なのに、なぜか成果が違う」**ケース。

例えば:

  • 同じ「人口1万人未満の中部地方の村」なのに
  • 片方は課税対象所得275億円、片方は3億円
  • この83倍の差は何が原因?

これなら「人口が多いから」「東京だから」では説明できない。
施策・工夫・努力の差が見えてくるはず。

ほとんどの自治体が「人口相応」のラインに並ぶ中、忍野村や苅田町だけがグラフの突き抜けた場所に点在している。
この「外れ値(アウトライヤー)」こそが、今回の主役です。


Part 1:再設計編 ~ 地域×人口規模でグルーピング

アプローチの転換

# 地域ブロックを定義
REGION\_BLOCKS = {
    1: '北海道',
    2: '東北', 3: '東北', 4: '東北', ...
    15: '中部', 16: '中部', ...
}

# 人口規模区分
POPULATION\_BINS = \[0, 10000, 30000, 50000, 100000, 200000, float('inf')]
POPULATION\_LABELS = \['1万人未満', '1-3万人', '3-5万人', ...]

同じ地域ブロック × 同じ人口規模 = 同格グループ

この中で比較すれば、「地理的ハンデ」を排除した純粋な成果比較ができる。


結果:衝撃の格差発見

中部地方 × 人口1万人未満のグループ(84自治体)を分析。

順位 自治体 人口 課税対象所得
1位 忍野村(山梨) 9,237人 275億円
... ... ... ...
84位 粟島浦村(新潟) 353人 3.3億円

格差:83倍

同じ「中部地方の1万人未満の村」なのに、なぜ?


Part 2:発見編 ~ 成功自治体の共通パターン

忍野村の秘密:ファナックという「金の卵」

調べて驚きました。

忍野村 = ファナック本社所在地

  • 1972年に誘致、1984年に東京から本社移転
  • 世界シェアNo.1のNC装置・産業用ロボットメーカー
  • 従業員の平均年収:1,364万円
  • 敷地面積180万㎡、通称「ファナックの森」

人口9,000人の村に、世界的企業の本社がある
住民税収入が桁違いになるわけです。


他の地域でも同様のパターンを発見

地域 格差 上位の秘密
九州 44.8倍 苅田町(日産)、菊陽町(TSMC)
東北 29.5倍 双葉町・大熊町(原発※特殊)
四国 22.7倍 直島町(ベネッセアート)
北海道 19.5倍 別海町(生乳日本一)

成功パターンが見えてきた!

「1,911自治体 × 500以上の指標を人間が総当たりするのは無理だが、AIなら数秒で『ここ、おかしくない?』と指摘してくれる」


成功パターン分類

パターンA:大企業誘致型

  • 忍野村(ファナック)
  • 苅田町(日産)
  • 菊陽町(TSMC)

パターンB:ブランド産品型

  • 別海町(生乳日本一)
  • 馬路村(ゆず→年商30億円)
  • 上勝町(葉っぱビジネス→年商2.6億円)

パターンC:観光・文化型

  • 直島町(ベネッセアート)
  • 白川村(世界遺産)

Part 3:逆転の発想編 ~ 下位自治体にこそビジネスチャンス

ここで発想を転換しました。

「成功事例より、てこ入れが必要な自治体の方が提案が刺さるのでは?」

成功している自治体は「現状維持」で満足している。
一方、下位自治体はワラにもすがりたい状態(のハズ😅)


下位自治体の分析

人口1万人未満 × 課税対象所得 下位20% = 107自治体を特定。

分類 自治体数 特徴
離島 18 物流コスト高(提案難易度:高)
山間過疎 52 森林資源あり(提案難易度:中)
平野部過疎 35 アクセス良(提案難易度:低)

優先ターゲット:本土過疎地域 87自治体


驚きの発見:同じ高知県に成功モデルがある

下位自治体の多い高知県。
しかし同じ県内に馬路村上勝町(徳島) という大成功事例がある。

馬路村モデル

人口800人 → ゆず年商30億円

林業衰退(昭和30年代)
    ↓
ゆず栽培開始(昭和38年)
    ↓
「ごっくん馬路村」発売(1988年)
    ↓
「村ごと売る」ブランディング
    ↓
年商30億円、商品70種類

上勝町モデル

人口1,500人 → 葉っぱ年商2.6億円

ミカン全滅(1981年寒波)
    ↓
「葉っぱを売ろう!」発想転換
    ↓
ICTで受発注システム導入(1999年)
    ↓
つまもの市場シェア80%
年収1,000万円のおばあちゃん誕生

これ、横展開できるじゃん!


Part 4:ビジネス提案編 ~ 再現性のデザイン

データ分析は「再現性のデザイン」である

今回の分析で確信したこと。

**成功は偶然ではない。パターンがある。**
**パターンがあるなら、再現できる。**

これこそがデータ分析の本質的価値


提案サービス案

サービス 内容 想定料金
地域資源棚卸し診断 埋もれた資源の発掘 50-100万円
成功パターン適用診断 類似事例とのマッチング 30-50万円
6次産業化支援 商品開発〜販路開拓 200-500万円/年

優先ターゲット自治体(TOP5)

順位 自治体 潜在資源 適用パターン
1 王滝村(長野) 木曽ヒノキ・御嶽山 馬路村モデル
2 川上村(奈良) 吉野杉・世界遺産 ブランド産品型
3 野迫川村(奈良) 雲海・高野山 観光ブランド化
4 売木村(長野) 星空・清流 ワーケーション誘致
5 南山城村(京都) 京都唯一の村 「京都の秘境」ブランド

Part 5:振り返り ~ AI駆動開発で何が変わったか

Before:データ準備が8割

前回の投稿で書いたように、従来のデータ分析は「準備が8割」。

データ収集 → クレンジング → 整形 → 分析 → 考察
  ↑\_\_\_この部分が地獄\_\_\_↑

地獄からGo Go Heaven!👼

After:考えることに時間を使える

今回はパイプラインを自動化したことで、状況が一変。

# e-Stat APIからデータ自動取得
def fetch\_all\_categories(self):
    categories = \['A\_人口世帯', 'C\_経済基盤', 'D\_行政基盤', ...]
    for cat in categories:
        self.fetch\_category(cat)  # API自動呼び出し

「データ準備8割」の時間が削減され、「考える」ことに時間を使えた。


真逆のアプローチが可能になった理由

前回:「意味のある組合せでデータ分析しましょう」
今回:「まず全部取って、組合せを試す」

この方針転換ができたのは、AIがデータ処理を高速化してくれたから

人間が1つ1つ仮説を立てて検証するのではなく、
AIが大量の組合せを試して、異常値を見つけてくれる

まさに「新素材発見」のアプローチ。


おわりに:今日もどこかで、データ分析の闘いは続く(プロジェクトX風味)

忍野村にファナックを誘致した人がいた。
馬路村でゆずを加工品にしようと言い出した人がいた。
上勝町で「葉っぱを売ろう」と閃いた人がいた。

彼らはデータを見て決断したわけではない。
現場の課題と向き合い、泥臭く解決策を探した。

でも今、私たちにはAIという「相棒」がいる。
1,911自治体の背後に隠れたパターンを、AIは一瞬で炙り出してくれる。

かつての開拓者が「勘と熱意」で切り拓いた道を、これからは「データとAI」で再現可能な地図にする。

「過疎だから仕方ない」ではなく、「過疎でも成功している事例がある」

このデータが、次の馬路村を、次の上勝町を生むかもしれない。

今日もどこかで、
地方創生のための闘いが続いている。

データ分析で、その闘いを支援できるなら——
これほど嬉しいことはない。

次回

今日の金字塔 明日には蟹気楼 土足で踏み込む前人未踏
感動の大団円!!

次回:AIに「お役所の課長の悩み」を理解させたら、提案書が3時間で完成した。人間が3ヶ月かかる仕事を100倍速にする方法


技術的補足:再現手順

1. e-Stat APIでデータ取得

import requests

APP\_ID = "your\_app\_id"
BASE\_URL = "https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData"

params = {
    "appId": APP\_ID,
    "statsDataId": "0000010101",  # 統計でみる市区町村のすがた
    "metaGetFlg": "Y",
    "sectionHeaderFlg": "1",
}
response = requests.get(BASE\_URL, params=params)

2. 地域ブロック×人口規模でグルーピング

# 地域ブロックマッピング
df\['region'] = df\['pref\_code'].map(REGION\_BLOCKS)

# 人口規模区分
df\['pop\_category'] = pd.cut(
    df\['population'],
    bins=POPULATION\_BINS,
    labels=POPULATION\_LABELS
)

3. グループ内での成果比較

# 変動係数(CV)でバラツキを測定
cv = group\['課税対象所得'].std() / group\['課税対象所得'].mean()

# CVが高いグループ = 同条件なのに成果に差があるグループ

参考リンク


いいね👍とストックをお願いします!

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?