🎯 この記事を読むと何ができるようになるか
- 研究の核心:慣習的な地方区分を、通勤・通学の実態から統計的に組み替える発想
- 分析手法:k-means法で似た都道府県を自動でグループ分けする方法
- 分析手法:単変量線形回帰で「業種の成長率」を推定し、傾きβを検定して成長見込みを判定する方法
- 分析手法:Ward法階層クラスタリングと非類似度の設計、デンドログラムの読み方
- 結果の読み方:「再現できる部分」と「報告値として引用する部分」を切り分ける再現可能性の考え方
- 応用:SSDSEの学校データから自分でクラスタリングを再現する発想
📥 データの準備(再現コードを動かす前に)
このページの分析を自分で再現するには、以下の手順でデータを準備してください。コードの編集は不要です。
2
ファイルを所定のフォルダに配置する
ダウンロードした
CSVを、プロジェクトの
data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/
├── code/
│ └── 2020_U5_3_shorei.py ← 実行するスクリプト
└── data/
└── raw/
SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する
ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2020_U5_3_shorei.py
図は
html/figures/ に自動保存されます。
日本が直面する大きな課題の一つに地域経済の活性化がある。原論文は厚生労働省『平成27年版 労働経済の分析』(p.187)を引きつつ、地域経済が持続的に成長するには ①労働人材の確保 と ②労働生産性の向上 の2つが重要だと整理する。
そのうえで著者が着目するのが、「北海道・東北・関東・中部・近畿・中国・四国・九州」といった慣習的な地方区分は、実は厳密に定義されたものではないという点である。
本研究の狙いは、この慣習的な区分に代えて、県をまたいで協力しやすい新しい「地方」を統計的に構成し、その新地方を単位に成長戦略を立てることにある。
研究の問い
地域経済の再生・成長のために、(1) 進学時に若者が地元を離れる「人材流出」はどこで、どの進学段階で起きているのか。(2) 各都道府県で「これから伸びる(成長見込みのある)業種」はどれか。(3) 通勤・通学の実態から見て、協力体制に適した「新しい地方」はどう引き直せるか。
原論文は解析を大きく3つのパートに分ける。本ページもこの流れに沿って解説する。
| パート | 問い | 手法 | 本ページでの再現可否 |
| ① 進学時の人口変化 | 人材流出はどこで起きるか | k-means法(クラスタリング) | SSDSE収録 → 実再現 |
| ② 成長見込み業種の特定 | 各県で伸びる業種は何か | 単変量線形回帰(成長率の推定と検定) | e-Stat県内総生産 → 報告値を提示 |
| ③ 新地方の構築 | 協力に適した地方区分は | Ward法階層クラスタリング | e-Stat通勤通学 → 報告値を提示 |
再現可能性トリアージ(このページの約束)
本ページで実際に計算し直したのは、SSDSE-B-2026 に収録されている学校在籍者数から作れる①進学時人口変化のk-meansクラスタリングのみです。②県内総生産の回帰・③通勤通学のWard法は、SSDSEに無い e-Stat データを使うため再計算できません。②③については「原論文の報告値」であることを明示して数値・図を紹介し、地図やデンドログラムは「グラフは原論文参照」とします。新しい数値の捏造は行いません。
SSDSE-B
k-means法
単変量線形回帰
Ward法 階層クラスタリング
データと手法
使用データ
| 用途 | データ | 出典 | 本ページでの扱い |
| ① 進学時人口変化 | 学校在籍者数(小〜大学・専修学校) | SSDSE(教育用標準データセット) | SSDSE-B-2026 から実再現 |
| ② 県内総生産(業種別) | 経済活動別 県内総生産(平成23年基準, 2006〜2015年度) | 内閣府「県民経済計算」(e-Stat 経由) | 原論文の報告値を提示 |
| ③ 通勤・通学 | 平成27年国勢調査「従業地・通学地による人口・就業状態等集計」 | e-Stat(総務省統計局) | 原論文の報告値を提示 |
SSDSE(教育用標準データセット)とは
独立行政法人統計センターが提供する、教育用に整えられた標準データセット。都道府県別の SSDSE-B には人口・経済・教育など多数の指標が揃っており、本ページの①は SSDSE-B-2026(2012〜2023年度・47都道府県)を用いて再現できる。
① 進学時人口変化の特徴量(原論文 3.1 節の定義)
原論文は、地元を離れるタイミングが進学段階に重なることに注目し、SSDSEの学校在籍者数から進学段階ごとの「人口増加率」を作る。学年ごとの正確な人数が分からないため、在籍者数を在籍年数で割って1学年あたりに換算している(概数)。
中学進学時増加率 = (中学校生徒数 ÷ 3) ÷ (小学校児童数 ÷ 6) − 1
高校進学時増加率 = (高校生徒数 ÷ 3) ÷ (中学卒業者のうち進学者数) − 1
大学等進学時増加率 = (大学生数÷4 + 短大生数÷2 + 専修学校生徒数÷2) ÷ (高校卒業者のうち進学者数) − 1
この3つの値を各都道府県ごとに年次平均し、3次元の特徴量ベクトルとする。これを k-means法 で k=4 にクラスタリングし、人材流出の似た都道府県をグループ化する。
年次範囲の違い(再現上の注意)
原論文は 2006〜2017 年度(12年)の平均を用いるが、SSDSE-B-2026 の収録年次は 2012〜2023 年度である。本再現はこの収録年次(同じく12年)で計算する。したがって厳密には原論文と年次範囲が異なる再現分析である。
② 成長見込み業種(単変量線形回帰)
内閣府「県民経済計算」の経済活動別 県内総生産(2006〜2015年度の10年、e-Stat 経由)を用い、業種ごとに y = βx + α + ε(x=年度, ε は平均0・分散σ²の正規誤差)を当てはめる。10年しかないため ARMA 等の本格的な時系列モデルではなく、基本的な単変量線形回帰を採用している。傾き β の最尤推定量は下式で、「真の β ≤ 0」という帰無仮説が有意水準5%で棄却された業種を「成長見込みあり」と判定する。
β̂ = Σ(xᵢ − x̄)(yᵢ − ȳ) ÷ Σ(xᵢ − x̄)², α̂ = ȳ − β̂ x̄ (n = 10)
③ 新地方の構築(Ward法 階層クラスタリング)
県をまたぐ通勤・通学の多さから県A・B間の類似度 SA,B を定義し、非類似度 dA,B = 1 − SA,B(A=Bは0)を距離として Ward法 の階層クラスタリングを行う。通勤・通学が多い県どうしほど距離が小さくなる。
SA,B = ½ × { (A常住でB勤務通学) ÷ (A常住で他県勤務通学) + (B常住でA勤務通学) ÷ (B常住で他県勤務通学) }
Ward法は「クラスター結合前後の重心からの二乗距離和の差」を距離とし、クラスターが極端に大きくなりにくい。デンドログラムの高さでクラスター数を後から決められる点が k-means との違いで、地方内の距離構造や地方間の距離まで把握できるため採用された。
ここは原論文の①パート。SSDSE-B-2026 に収録された学校在籍者数から進学段階ごとの人口増加率を作り、k-means法(k=4)で都道府県を4グループに分ける。この節の図1〜図4はすべて実データから計算し直した再現結果である(年次範囲のみ原論文と異なる)。
①この手順の目的:解析に使うライブラリ(データ処理・作図・k-means)を読み込み、図の保存先フォルダを用意します。
📝 コード
1
2
3
4
5
6
7
8
9
10
11
12
13 | import os
import numpy as np
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
from sklearn.cluster import KMeans
plt.rcParams['font.family'] = 'Hiragino Sans'
FIG_DIR = 'html/figures'
DATA_B = 'data/raw/SSDSE-B-2026.csv'
os.makedirs(FIG_DIR, exist_ok=True)
|
④ 実行結果と読み取り
この手順では画面出力はありません(この先の解析のための下ごしらえです)。
KMeans を sklearn.cluster から読み込みます。これが今回の主役、k-means法の実装です。matplotlib.use('Agg') は画面を出さずに図をファイル保存するための指定。図は html/figures/ に書き出します。
①この手順の目的:SSDSE-B-2026 を読み込み、47都道府県ぶんの行だけに絞ります。
②前後のつながり:読み込んだ生データから、次の手順で「進学段階ごとの人口増加率」という特徴量を作ります。
📝 コード
| # 先頭行=英字コード, 2行目=和名 → 和名行(skiprows=[1])を飛ばす
df = pd.read_csv(DATA_B, encoding='cp932', skiprows=[1])
df = df.rename(columns={'SSDSE-B-2026': '年度',
'Code': '地域コード', 'Prefecture': '都道府県'})
df = df[df['地域コード'].astype(str).str.match(r'^R\d{5}$')].copy()
df['年度'] = df['年度'].astype(int)
print(f"読み込み: {df.shape[0]}行 = 47都道府県 × {df['年度'].nunique()}年"
f"({df['年度'].min()}〜{df['年度'].max()}年度)")
|
④ 実行結果と読み取り
読み込み: 564行 = 47都道府県 × 12年(2012〜2023年度)
- SSDSE の CSV は
cp932(Shift_JIS系)。先頭行が英字コード、2行目が和名なので skiprows=[1] で和名行だけ飛ばし、英字コード列名で扱います。 - 読み取り:564行 = 47都道府県 × 12年。原論文の2006〜2017年度に対し、本再現は収録範囲の2012〜2023年度になっています。
①この手順の目的:学校在籍者数から、中学・高校・大学等の各進学段階での「人口増加率」を計算し、都道府県ごとの3次元特徴量にまとめます。
②前後のつながり:この3次元ベクトルを、次の手順で k-means法にかけてグループ分けします。
📝 コード
| # E2501 小学校児童数 / E3501 中学校生徒数 / E3702 中学卒業者のうち進学者数
# E4501 高校生徒数 / E4602 高校卒業者のうち進学者数
# E6301 短大学生数 / E6302 大学学生数 / E7201 専修学校生徒数
df['中学進学時増加率'] = (df['E3501'] / 3) / (df['E2501'] / 6) - 1
df['高校進学時増加率'] = (df['E4501'] / 3) / df['E3702'] - 1
df['大学等進学時増加率'] = (df['E6302']/4 + df['E6301']/2 + df['E7201']/2) / df['E4602'] - 1
FEATS = ['中学進学時増加率', '高校進学時増加率', '大学等進学時増加率']
feat = df.groupby('都道府県')[FEATS].mean() # 各県を全収録年次で平均
print(feat.head().round(3).to_string())
|
④ 実行結果と読み取り
中学進学時増加率 高校進学時増加率 大学等進学時増加率
都道府県
北海道 0.062 -0.009 0.937
青森県 0.122 0.031 0.051
岩手県 0.096 0.015 0.204
宮城県 0.045 -0.008 1.237
秋田県 0.113 0.013 -0.088
- 原論文3.1節の定義そのままに、在籍者数を在籍年数で割って1学年に換算し、次の段階との比から「増加率」を作っています。
- 読み取り:秋田県の大学等進学時増加率は −0.088(進学で若者が県外へ出る=人材流出)。一方、宮城・北海道は大学等でプラス(進学で流入)。大学進学のタイミングで流出入の差が大きいことが数値で見えます。
①この手順の目的:3次元特徴量を k-means法で4グループに分け、進学時の人材流出パターンが似た都道府県をまとめます。
②前後のつながり:得られたグループを、次に散布図・地図・プロファイルで可視化します(図1〜図4)。
📝 コード
| X = (feat - feat.mean()) / feat.std() # 標準化
km = KMeans(n_clusters=4, n_init=10, random_state=0).fit(X.values)
feat['cluster'] = km.labels_
# 「大学等進学時増加率」の小さい順に G1..G4 と付け替え(解釈しやすく)
prof = feat.groupby('cluster')[FEATS].mean()
relabel = {old: new for new, old in enumerate(prof['大学等進学時増加率'].sort_values().index)}
feat['グループ'] = feat['cluster'].map(relabel) + 1
print(feat.groupby('グループ')[FEATS].mean().round(3).to_string())
print('所属数:', feat['グループ'].value_counts().sort_index().to_dict())
print('グループ4:', '、'.join(feat[feat['グループ']==4].index))
|
④ 実行結果と読み取り
中学進学時増加率 高校進学時増加率 大学等進学時増加率
グループ
1 0.101 0.036 0.065
2 0.057 0.003 0.274
3 0.021 -0.036 0.608
4 0.047 0.057 2.287
所属数: {1: 8, 2: 24, 3: 13, 4: 2}
グループ4: 東京都、京都府
- 3変数を標準化してから k-means(k=4)。クラスター番号は任意なので、大学等進学時増加率の小さい順に G1〜G4 と付け替えて解釈しやすくしています。
- 読み取り:グループ4(大学等進学時増加率が突出して高い=2.287)は東京都・京都府の2つだけ。これは原論文の報告(大学進学時の増加率が著しく高いのは東京都と京都府のみ)と完全に一致します。
- 逆にグループ1(大学等が最も低い)には青森・岩手・秋田・山形・福島など東北の多くが入り、大学進学時の流出が大きいという原論文の記述と整合します。
①この手順の目的:グループ分けの結果を散布図にして、東京・京都が他から際立って離れていることを視覚的に確認します。
②前後のつながり:ここまでが実再現。生成した図1〜図4を続けて掲載します。
📝 コード
| CL_COLORS = {1:'#e05c5c', 2:'#4e9af1', 3:'#f0a500', 4:'#2e7d32'}
fig, ax = plt.subplots(figsize=(9.5, 7))
for g in sorted(feat['グループ'].unique()):
grp = feat[feat['グループ'] == g]
ax.scatter(grp['中学進学時増加率'], grp['大学等進学時増加率'],
color=CL_COLORS[g], label=f'グループ{g} (n={len(grp)})', s=70)
ax.set_xlabel('中学進学時 人口増加率'); ax.set_ylabel('大学等進学時 人口増加率')
ax.legend(); fig.savefig(FIG_DIR + '/2020_U5_3_fig2.png', bbox_inches='tight')
|
④ 実行結果と読み取り
図2〜図4を html/figures/ に保存(次に表示します)。同じ要領で図1(大学等増加率で色分けした分布)・図3(グループ別プロファイル)・図4(大学等増加率ランキング)も出力します。
- 横軸=中学進学時増加率、縦軸=大学等進学時増加率でグループ別に色分け。右上に大きく離れた2点(東京・京都=グループ4)が一目で分かります。
- k-means は「あらかじめクラスター数kを決める」手法です(ここでは原論文同様 k=4)。次のパート③のWard法は、逆にデンドログラムから後でk数を決められる点が対照的です。
図1の読み取り
- 右上に外れる
- 大学等進学時増加率が高い都府県(東京・京都・宮城・大阪など)は上方に位置。進学で「人が集まる」側。
- 下側(負の値)
- 秋田など東北勢は大学等でマイナス=進学で「人が出ていく」側。
| グループ | 県数 | 特徴(再現プロファイル) | 主な所属 |
| 1 | 8 | 大学等進学時が最も低い(流出大) | 青森・岩手・秋田・山形・福島・山梨・和歌山・高知 |
| 2 | 24 | 中間的 | 北海道・北関東・北陸・山陰・南九州 ほか |
| 3 | 13 | 大学等進学時がやや高い(流入) | 宮城・埼玉・千葉・神奈川・愛知・兵庫・福岡・沖縄 ほか |
| 4 | 2 | 大学等進学時が突出(流入極大) | 東京都・京都府 |
原論文の解釈(表2の要旨・報告値)
原論文は表2で、グループ1「中学・高校進学時が高く、大学等が著しく低い」、グループ4「高校進学時が高く、大学等が著しく高い」等とまとめ、東北の多くが大学進学で流出、東京・京都のみ大学進学で著しく流入と述べる。本再現のグループ4(東京・京都)と東北中心のグループ1は、この報告と一致した。
このパートは再計算ではありません
以下の数値・判定は、内閣府「県民経済計算」の経済活動別県内総生産(2006〜2015年度、e-Stat 経由)を用いた原論文の解析結果(報告値)です。この県内総生産データは SSDSE に収録されていないため本ページでは再計算できません。ヒートマップ(原論文 図8)と成長業種数の地図(図9)はグラフは原論文参照としてください。
📝 より正確な分析(教材補足)
県内総生産は SSDSE-B-2026 の収録列ではなく、内閣府が公表する県民経済計算(経済活動別県内総生産)という外部データです。SSDSE-B-2026 の実在列(総人口・消費支出・宿泊者数など)だけでは②の回帰は再現できません。したがって②の数値は原論文の報告値であり、本ページの実CSV再計算の対象は①の k-means クラスタリングに限られます。
原論文は業種ごとに単変量線形回帰 y = βx + α + ε を当てはめ、傾き β について「真の β ≤ 0」という帰無仮説を有意水準5%で検定。棄却された業種を「成長見込みあり」と判定した。
主要な発見(原論文の報告値)
| 報告された発見 | 内容 |
| すべての都道府県で正に推定 | 保健衛生・社会事業 |
| 半数以上の都道府県で正に推定 | 不動産業 |
| すべての都道府県で負に推定 | 金融・保険業 |
| 成長見込み業種が最少(1業種) | 栃木県・長野県・大阪府・鳥取県 |
| 成長見込み業種が最多(7業種) | 沖縄県 |
原論文が挙げる注意点
県内総生産のデータが10年と短く、線形回帰では捉えきれないトレンドがある。例として、東京都の情報通信業は2010年頃を境に下降から上昇へ転じたように見えるが、10年一括の線形回帰では「成長見込みなし」と判定されてしまう、と原論文は自ら課題を挙げている。より高頻度・長期のデータや柔軟な時系列モデルがあれば精度が上がる。
図8・図9について
- 図8
- 業種×都道府県の回帰係数(正規化)ヒートマップ。グラフは原論文参照。
- 図9
- 成長見込み業種数で色分けした日本地図。沖縄が最多、栃木・長野・大阪・鳥取が最少。地図は原論文参照。
このパートは再計算ではありません
非類似度・デンドログラム・提案地方は、e-Statの平成27年国勢調査「従業地・通学地による人口・就業状態等集計」を用いた原論文の解析結果(報告値)です。この通勤・通学データは SSDSE に無いため本ページでは再計算できません。Ward法のデンドログラム(図10)と提案地方の地図(図11)はグラフは原論文参照としてください。
県をまたぐ通勤・通学の多さから非類似度 dA,B を定義し、Ward法 の階層クラスタリングでデンドログラムを描く。地理的に独立した北海道・沖縄を除く45都府県について、単独でないクラスターに属する高さを閾値としてクラスタリングした結果……
17
新たに構成された地方の数(北海道・沖縄は単独)
提案された「新地方」の例(原論文の報告値)
| 慣習区分での扱い | 提案地方での再編 |
| 三重は近畿に入ることが多い | 岐阜・愛知と同じ地方に |
| 長野・山梨、静岡は別区分になりがち | 長野・山梨・静岡で一つの地方に |
| 群馬・栃木・茨城(北関東) | 提案地方では異なる分類に |
原論文によれば、同じ人材流出グループのみで構成される新地方は、北海道・沖縄を除くと「富山・石川・福井(地方2)」「青森・秋田・岩手(地方4)」「鳥取・島根(地方15)」のみ。それ以外は異なる課題を持つ県の集合であり、互いの強みで課題を補い合える組み合わせになっている、と解釈される。
図10・図11について
- 図10
- Ward法のデンドログラム。結合の高さ=クラスター間距離。グラフは原論文参照。
- 図11
- 17の提案地方で色分けした日本地図。地図は原論文参照。
政策提言:新地方に基づく成長戦略
原論文は、①進学時の人材流出、②成長見込み業種、③新地方の3つを重ね合わせ、「新地方の単位で協力する」戦略を提案する(原論文 図12・表3)。
人材確保:グループ別に考えられる対策(原論文 表3)
| グループ | 対策 |
| グループ1 | 大学数・学部数を増やす。既存大学のPRを拡大する。 |
| グループ2 | 中学・高校数を増やす。 |
| グループ3 | 高校・大学数を増やす。既存大学のPRを拡大する。 |
| グループ4 | 特に対策の必要はない。 |
なぜ都道府県単独でなく「新地方」で協力するのか
(1) 新地方は通勤・通学の実態で作られており、自県から通学可能な範囲を表す。大学新設のコストは高いが、隣県の大学PRや学部新設を新地方で支援すれば、少ないコストで域内に人材をとどめられる。(2) 成長見込み業種を新地方で分散させれば、特定業種依存のリスク(農林水産=災害、宿泊飲食=感染症など)を分配できる。単独県では難しいコスト負担の軽減と労働生産性の向上が期待できる。
具体例(原論文)
愛知・岐阜・三重からなる地方1では、大学進学時の増加率が高い愛知への支援や愛知県内大学のPRを岐阜・三重が担えば、2県の大学進学時の人材流出を抑えられる。逆に、愛知県内からの中学・高校進学時の流出は、別グループの岐阜・三重の方が低コストで解決できるかもしれない。
まとめと課題
結論
慣習的な「地方」を、通勤・通学の実態から統計的に組み替えて17の新地方を構成した。この新地方を単位に協力すれば、(1) 進学時の人材流出抑制に向けた広域連携、(2) 成長見込み業種の分散による経済リスクの分配が可能になり、単独県では難しいコスト軽減と労働生産性向上が期待できる。慣習区分を統計的に再構成したこと自体が本論文の新規性である。
本ページで実際に再現できたこと
グループ4=東京・京都
再現でも2県のみ(原論文と一致)
東北=流出グループ
大学等進学時が最低(原論文と一致)
原論文が挙げる課題
- 通勤・通学の流動性:この新地方の基礎データは流動的で、時代に応じた再構築が必要。
- 県内総生産データの短さ:10年と短く、線形回帰では捉えきれないトレンド(例:東京の情報通信業)がある。
- 非類似度の定義:県外で働く人が少ない北海道・沖縄では非類似度が現実に合わない。図10で北海道・沖縄間の距離が{京都・滋賀}や{和歌山・奈良・兵庫}のクラスター間距離より小さくなるのは不自然で、「他県で働く人の少なさ」を距離定義に組み込む改善余地がある。
参考文献(原論文)
(1) 厚生労働省『平成27年版 労働経済の分析 —労働生産性と雇用・労働問題への対応—』p.187 (2015) (2) 株式会社マイナビ『マイナビ2021年卒 大学生Uターン・地元就職に関する調査』(2020)
⚠️ よくある誤解と注意点
統計分析の解釈で初心者がやりがちな勘違いをまとめます。特に「相関と因果の混同」「p値の過信」は研究現場でもよく起きる落とし穴です。本文を読む前にも、読んだ後にも、目を通してみてください。
❌ 「相関がある=因果関係がある」ではない
疑似相関(spurious correlation)とは、見かけ上は関係があるように見えるが、実際は無関係、または第三の変数(交絡変数)が両方に影響しているだけの現象です。
古典例: アイスクリームの売上 と 水難事故件数 は強く相関するが、片方が他方を引き起こしているわけではない。両者とも「夏の暑さ」という第三の変数に引きずられているだけ。
論文を読むときの心構え: 「○○と△△に強い相関が見られた」だけで終わっている主張は、本当に因果関係があるのか、それとも第三の変数(人口・所得・地理など)が共通要因として効いているだけではないかを必ず疑ってください。
❌ 「p値が小さい=重要な発見」ではない
p値が小さい(例えば p < 0.001)ことは「統計的に偶然とは考えにくい」という意味であって、「実用的に大きな効果がある」という意味ではありません。
例: 巨大なサンプルサイズ(n=100,000)では、相関係数 r=0.02 でも p < 0.001 になります。しかし r=0.02 は実用上ほぼ無視できる関係です。
正しい読み方: p値と効果量(係数の大きさ、相関係数の値)の両方をセットで判断してください。p値だけで「重要な発見」と結論づけるのは誤りです。
❌ 「回帰係数が大きい=重要な変数」ではない
回帰係数の絶対値は、説明変数の単位に強く依存します。「年収(万円)」と「失業率(%)」の係数を直接比較しても意味がありません。
正しい比較方法: (1) 標準化係数(各変数を平均0・分散1に変換した上での係数)を使う、(2) 限界効果(変数を1標準偏差動かしたときのyの変化)で比較する。
また、係数の大きさが「因果関係の強さ」を意味するわけでもありません。あくまで「相関的な関連の強さ」です。
❌ 「外れ値を除外すれば正しい結果」ではない
外れ値(極端な値)を「目障りだから」「結果が綺麗にならないから」という理由で除外するのは分析の改ざんに近い行為です。
外れ値が示すもの: 本当に重要な情報(東京の超高密度、北海道の超低密度など)であることが多い。外れ値を取り除くと「日本全体の傾向」を見誤る原因になります。
正しい対処: (1) 外れ値の出現要因を調査する(なぜ東京だけ突出するのか)、(2) ノンパラメトリック手法(Spearman相関・Kruskal-Wallis)を使う、(3) 外れ値を含む結果と除外した結果の両方を提示し、解釈を読者に委ねる。
❌ 「サンプルサイズが大きい=信頼できる」ではない
サンプルサイズ(n)が大きいと統計的検定の検出力は上がりますが、それは「偶然による誤差を減らす効果」にすぎません。
nが大きくても解消されない問題:
・選択バイアス(標本が偏っている)
・測定誤差(変数の定義が曖昧)
・欠損値のパターン(欠損がランダムでない)
・交絡変数の見落とし
例: 1万人にWeb調査して「ネット利用と幸福度は強く相関」と言っても、そもそも回答者がネットユーザー寄りに偏っているため、母集団全体の結論にはなりません。
❌ 「複雑なモデル=より良い分析」ではない
ランダムフォレスト・ニューラルネット・複雑な階層モデルなど、高度な手法を使えば「良い分析」と感じがちですが、必ずしもそうではありません。
過学習(overfitting)の罠: モデルが複雑すぎると、訓練データの偶然のパターンまで学習してしまい、新しいデータでは予測精度が落ちます。
シンプルさの価値: 重回帰分析や相関分析は「結果が解釈しやすい」「再現性が高い」という大きな利点があります。複雑な手法はシンプルな手法で答えが出ない時の最後の手段です。
❌ 「多重共線性は気にしなくていい」ではない
多重共線性とは、説明変数同士の相関が極めて強い状態のこと。これを放置すると、回帰係数の符号や大きさが入れ替わる異常事態が起こります。
典型例: 「総人口」と「労働力人口」を同時に投入すると、両者の相関が r=0.99 になり、係数推定が極端に不安定になります。「総人口は正だが、労働力人口は負」のような解釈不能な結果になりがちです。
診断と対処:
・VIF(分散拡大係数)を計算し、VIF > 10 の変数を確認
・相関行列で |r| > 0.8 のペアをチェック
・対処法:一方を除外、合成変数(PCA)に変換、Ridge回帰で安定化
❌ 「R²が高い=良いモデル」ではない
決定係数 R² はモデルの「当てはまりの良さ」を示しますが、R² が高くてもモデルが正しいとは限りません。
R² が高くなる罠:
・説明変数を増やせば R² は自動的に上がる(無関係な変数を追加してもR²は下がらない)
・時系列データでは、共通のトレンド(時間とともに増加)があるだけで R² が 0.9 を超える
・サンプルサイズが小さいとR²が過大評価される
代替指標: 調整済み R²(変数の数でペナルティ)、AIC・BIC(モデル選択基準)を併用してください。予測力の真の評価には交差検証(cross-validation)でテストデータの R² を見ること。
❌ 「ステップワイズで選んだ変数は重要」ではない
ステップワイズ法(バックワード・フォワード選択)は便利ですが、p値ベースの変数選択は再現性に問題があると批判されています。
問題点:
・同じデータでも実行順序によって最終モデルが変わる
・p値を繰り返し見ることで「偶然に有意な変数」を拾ってしまう(p-hacking)
・係数の標準誤差が過小評価され、信頼区間が嘘っぽくなる
より良い方法:
・事前に変数を理論で絞る(先行研究から候補を選ぶ)
・LASSO回帰(自動かつ統計的に正当化された変数選択)を使う
・交差検証で AIC/BIC 最小モデルを選ぶ
❌ 「線形回帰なら線形関係を前提にすべき」
重回帰分析は線形関係を前提とします。実際の関係が非線形なのに線形モデルで分析すると、本当の関係を見逃します。
非線形の例:
・U字型関係: 失業率と物価上昇率(フィリップス曲線)
・逓減効果: 所得と幸福度(年収 800万円までは強い正の効果、それ以上は飽和)
・閾値効果: 高齢化率と医療費(ある水準を超えると急激に上がる)
診断と対処:
・残差プロットで残差が0周辺に均等に分布しているか確認
・変数の対数変換・二乗項追加で非線形性を取り込む
・どうしても線形では捉えられないなら、機械学習(RF・GBM)を併用する
❌ 「データに当てはまった=予測に使える」ではない
「過去のデータでフィットしたから将来も予測できる」と思うのは危険です。
過学習(overfitting)の例: 47都道府県のデータに10個の説明変数を投入すれば、ほぼ完璧にフィットします(自由度がほぼゼロ)。でもそのモデルを新しい年度に適用すると、予測精度はほぼランダム並みに落ちることがあります。
正しい予測力の評価:
・データを訓練用 70%とテスト用 30%に分割し、テスト用での予測精度を見る
・k分割交差検証(k-fold CV)で予測の安定性を確認
・「説明変数の数 ≪ サンプルサイズ」のバランスを意識(目安:n > 10 × 変数数)
📖 用語集(この記事に出てくる統計用語)
統計の基本用語を初心者向けに解説します。本文中で見慣れない言葉が出てきたら、ここに戻って確認してください。
- p値
- 「効果がない」と仮定したときに、観察されたデータ(またはより極端なデータ)が得られる確率。0〜1の値で、慣例的に 0.05(5%)未満を「有意」と判断する。
- 有意水準
- 「偶然」と「意味のある違い」を分ける基準。通常 α=0.05(5%)を使う。p値 < α なら「有意」と判定。
- 信頼区間
- 「真の値はこの範囲にあるだろう」という幅。95%信頼区間 = 同じ実験を100回繰り返したら95回はこの範囲に真の値が入る。
- サンプルサイズ
- 分析に使ったデータ点の数(n)。一般にnが大きいほど推定が安定し、わずかな差も検出できるようになる。
- 標準誤差
- 推定値(係数など)のばらつきの目安。標準誤差が小さいほど推定値が安定している。
- 正規分布
- 釣鐘型の左右対称な分布。多くのパラメトリック検定(t検定・F検定など)は「データが正規分布に従う」ことを仮定する。
- 因果と相関
- 「相関がある」と「原因と結果の関係(因果)」は別物。アイスクリームの売上と水難事故は相関するが、原因は両者とも「夏の暑さ」。
- 外れ値
- 他のデータから極端に離れた値。分析結果を歪める原因になるため、検出して除外するか別途扱う必要がある。
- 欠損値
- データが取得できなかった部分(NaN・空白)。除外するか補完(平均代入・回帰代入など)するかが分析上の重要な判断点。
- VIF
- Variance Inflation Factor(分散拡大係数)。多重共線性の強さを示す指標。VIF > 10 で「強い多重共線性あり」と判断。
- 交絡変数
- 「真の原因」と「結果」の両方に影響する第三の変数。これを統制しないと、見かけ上の関係を真の因果と誤認する。
- 係数(回帰係数)
- 「説明変数 x が1単位増えたとき、目的変数 y が平均でどれだけ変化するか」を示す数値。正の値は正の影響、負の値は負の影響。
- 内生性
- 説明変数と誤差項が相関している状態。逆因果や交絡変数の存在で発生する。これを放置すると係数推定にバイアスが生じる。
- 多重共線性
- 説明変数同士の相関が強すぎる状態。係数推定が不安定になり、解釈を誤る原因になる。VIF > 10 が警告サイン。
- 標準化係数
- 変数の単位の影響を取り除いた係数。複数の変数の影響の大きさを単位に依存せず比較するために使う。
- 決定係数 R²
- 回帰モデルが目的変数のばらつきの何%を説明できるかを示す指標。0〜1の値で、1に近いほどモデルの説明力が高い。
📐 使っている手法をわかりやすく解説
統計手法について「何のためか」「結果をどう読むか」を初心者向けに解説します。
◆ 統計の基本概念(どの論文にも共通)
🔍 p値(有意確率)とは
- 何?
- 「もし本当に効果がなかったとしたら、今回の結果(またはもっと極端な結果)が偶然起きる確率」のこと。
- なぜ必要?
- 帰無仮説(「効果なし」の仮定)のもとで検定統計量の分布から計算する。
- 何がわかる?
- 「この関係は偶然ではなく、統計的に意味がある」と主張するための客観的な根拠になる。
- 読み方
- p < 0.05(5%未満)を「統計的に有意」と判断するのが慣例。ただし「p値が小さい=効果が大きい」ではない。効果量(係数の大きさ)とセットで判断する。
🗂️ ノンパラメトリック検定とは(なぜ使うのか)
- 何?
- 「データが正規分布に従う」という仮定を置かない検定手法の総称。Kruskal-Wallis検定・Mann-Whitney U検定などが代表例。
- なぜ必要?
- データの値ではなく「順位」に変換して検定統計量を計算する。外れ値や偏った分布に対しても安定して機能する。
- 何がわかる?
- サンプルサイズが小さい・データが歪んでいる・外れ値がある場合でも、グループ差の有無を検定できる。
- 読み方
- 「なぜノンパラメトリックを選ぶのか」の理由を示すには、正規性検定(Shapiro-Wilk)の結果を添えるのが望ましい。結果の解釈は対応するパラメトリック検定と同様(p < 0.05 で有意差あり)。
◆ この論文で使われている手法
🧩 k-means法(非階層クラスタリング)
- 何?
- データを、あらかじめ決めた個数 k のグループに自動で分ける手法。各点を最も近いクラスター中心に割り当て、中心を更新する操作を、割り当てが変化しなくなるまで繰り返す。
- この論文での使い方
- 各都道府県を「中学・高校・大学等の進学時人口増加率」の3次元ベクトルとみなし、k=4 でクラスタリング。人材流出パターンが似た都道府県をまとめた。
- 結果の読み方
- 各グループの特徴量の平均(プロファイル)を見て「大学進学で流出/流入」等と解釈する。クラスター番号自体に意味はない。
- ⚠️ 注意点
- (1) k を事前に決める必要がある(本論文は複数のkを試して k=4 を採用)。(2) 初期値依存で結果が変わりうるため
n_init を複数回に。(3) スケール依存—変数ごとに単位が違うので標準化してから実行する。(4) 外れ値に弱い(中心が引っ張られる)。
📉 単変量線形回帰(成長率の推定と検定)
- 何?
- 説明変数1つ(ここでは年度)で目的変数(県内総生産)を予測する直線 y = βx + α を当てはめ、傾き β を「成長率」の指標とする手法。
- この論文での使い方
- 業種ごとに2006〜2015年度(n=10)で回帰し、「真の β ≤ 0」という帰無仮説を有意水準5%で検定。棄却された業種を「成長見込みあり」と判定した。
- 結果の読み方
- β が正で有意なら「その業種は伸びている」。都道府県ごとに成長見込み業種の数を数え、経済の多様性を評価する。
- ⚠️ 注意点
- (1) n=10 と少ない—検定力が低く、短期のトレンドしか見えない。(2) 線形の仮定—途中で反転するトレンド(東京の情報通信業)を見逃す。(3) 片側検定であること(β≤0 を帰無仮説)を明確に。(4) 多重比較—多数の業種×県を検定するので偽陽性に注意。
🌿 Ward法 階層クラスタリング(+非類似度の設計)
- 何?
- 各点を1クラスターから出発し、最も「近い」クラスター同士を1つずつ結合していく手法。Ward法は「結合による群内平方和の増加」が最小のペアを結合する。
- この論文での使い方
- 県をまたぐ通勤・通学の多さから類似度 S、非類似度 d=1−S を自作し、これを距離として Ward法を適用。デンドログラムの高さで閾値を切り、45都府県を17の「新地方」に分けた。
- 結果の読み方
- デンドログラムの結合の高さ=クラスター間距離。クラスター数を後から決められるのが k-means との違い。地方内・地方間の距離構造まで読める。
- ⚠️ 注意点
- (1) 距離(非類似度)の設計が命—県外で働く人が少ない北海道・沖縄では非類似度が現実に合わず、不自然な結合が起きる(原論文の自己批判)。(2) 一度結合すると戻せない(貪欲法)。(3) 閾値の決め方で地方数が変わる。(4) Ward法は等方的なクラスターを好む傾向。
🚀 発展の可能性(結果 X → 新仮説 Y → 課題 Z)
この研究をさらに発展させるための3つの方向性を示します。「今回わかったこと(X)」から「次に検証すべき仮説(Y)」を立て、「具体的に何をするか(Z)」まで考えてみましょう。
① データ・時間的拡張
- 結果 X
- 本論文は特定の年度・地域の断面データ(または限られた時系列)で分析を行った。
- 新仮説 Y
- より新しい年度のデータや市区町村レベルの細粒度データを使えば、知見の時間的頑健性や地域内格差を検証できる。
- 課題 Z
- (1)統計センターから最新の SSDSE をダウンロードし、同じ分析を再実行する。(2)結果が変わった場合、その要因(コロナ・政策変化など)を考察する。(3)市区町村データ(SSDSE-A/C/F)で分析単位を細かくした場合の結果と比較する。
② 手法の発展:クラスタリング と距離設計の次のステップ
- 結果 X
- 本論文は進学時人口変化を k-means法 で、通勤・通学を Ward法(非類似度 d=1−S)でクラスタリングした。
- 新仮説 Y
- 非類似度の定義に「他県で働く人の少なさ」を組み込めば、北海道・沖縄が不自然に近く結合される問題を解消し、より現実に即した新地方が描ける可能性がある。
- 課題 Z
- (1)距離定義を改良して Ward法を再実行し、地方区分の変化を比較する。(2)k-means の k を変えて(k=3,5…)安定性を確認する。(3)主成分分析で特徴量を圧縮してからクラスタリングし、結果が頑健か確かめる。
③ 政策提言・実践への応用
- 結果 X
- 本論文は分析結果から特定の変数が目的変数に影響することを示した。
- 新仮説 Y
- 分析対象を日本全国から特定地域に絞ること、または逆に国際比較に拡張することで、政策の移転可能性と文脈依存性を検証できる。
- 課題 Z
- (1)有意な変数を「政策で変えられるもの」と「変えにくいもの」に分類する。(2)政策で変えられる変数について、係数の大きさから「どれだけ変えればどれだけ効果があるか」を試算する。(3)自治体・政策立案者への提言として、実現可能なアクションプランを1枚にまとめる。
🎯 自分でやってみよう(5つのチャレンジ)
学んだだけでは身につきません。実際に手を動かすのが最強の学習方法です。本論文のスクリプトをベースに、以下のチャレンジに挑戦してみてください。難易度別に5つ用意しました。
★☆☆☆☆ 入門
CH1. 同じデータで分析を再現する
まずは付属の Python スクリプトをそのまま実行し、論文と同じ図を再現してみてください。
ポイント: 各図がどのコード行から生成されているか辿る。エラーが出たら原因を考える。
★★☆☆☆ 初級
CH2. 説明変数を1つ追加・除外して結果を比較
本論文の分析モデルから説明変数を1つ抜いて再実行、あるいは1つ追加して再実行してください。
ポイント: 係数・p値・R² がどう変わったか観察する。多重共線性が原因で結果が変わる例を見つけられたら理想的。
★★★☆☆ 中級
CH3. 別の年度・別の都道府県で同じ分析を試す
SSDSE の別の年度(例:2015年度・2020年度)または特定都道府県のみのデータで同じ分析を実行してください。
ポイント: 時代や地域によって結論が変わるか? 変わるならその理由を考察する。
★★★★☆ 上級
CH4. 別の手法を組み合わせる
本論文の手法 + 1つの追加手法(例:重回帰 + LASSO、相関分析 + 主成分分析)で結果を比較してください。
ポイント: 手法の違いで結論が変わるか? どちらが妥当かを「なぜ」とともに説明できるように。
★★★★★ 発展
CH5. オリジナルの問いを立てて分析する
本論文の手法を借りて、あなた自身の問いを立てて分析してください。
例:「カフェの数と幸福度に関連はあるか」「教育費の高い県は出生率も高いか」など。
ポイント: 問い・データ・手法・結論を1ページのレポートにまとめる。これがデータサイエンスの「実践」。
💡 ヒント: 詰まったら本サイトの他の論文(同じ手法を使っている)のスクリプトをコピーして組み合わせるのが効率的です。手法ガイド・用語集も参考に。
💼 この手法は実社会でこう使われている
本論文で学んだ手法は、研究の世界だけでなく、行政・企業・NPO の現場でも様々に活用されています。具体的なシーンを紹介します。
🏛️
行政の政策立案
都道府県・市区町村の政策担当者は、本論文と同様のデータ分析を用いて「どこに予算を投じれば効果が出るか」を検討します。
例えば医療費削減策、移住促進策、子育て支援策などの効果予測・効果検証に直結します。
🏢
企業のマーケティング・出店戦略
小売チェーン・サービス業の出店戦略では、地域特性(人口構成、所得、ライフスタイル)と売上の関係を本論文と同じ手法で分析します。
ECサイトでも顧客セグメント分析・購買要因分析に類似手法が使われます。
🏥
医療・公衆衛生
感染症の流行予測、医療資源配分の最適化、健康格差の地域要因分析などで、本論文の統計手法は標準的に使われています。
WHO・厚労省レベルの政策評価でも同じ手法が活躍しています。
📊
メディア・ジャーナリズム
新聞・テレビの社会調査記事、選挙予測、世論調査の分析でも、本論文と同じ手法(回帰分析・クラスタリングなど)が使われています。
データジャーナリズムの記事はこの種の分析が中核です。
🎓
学術研究(隣接分野)
経済学・社会学・公衆衛生学・教育学・地理学などの実証研究では、本論文と同じ手法が日常的に使われます。
専門誌に掲載される論文の8割以上が、こうした統計手法に基づいて結論を出しています。
💰
金融・保険業界
与信判断(融資審査)、保険料の地域別設定、不動産価格予測などで、本論文と同様のモデリング手法が広く活用されています。
統計分析の能力は金融業界の必須スキルになっています。
🤔 よくある質問(読者からの想定Q&A)
この論文を読んで初心者が抱きやすい疑問に、教育的観点から答えます。
Q1. この分析、自分でもできますか?
はい、できます。SSDSE データは無料で公開されており、Python の pandas, scikit-learn, statsmodels を使えば全く同じ手順で再現可能です。本ページ下部のスクリプトを実行するだけで結果が得られます。
Q2. 使われている手法は他の分野にも応用できますか?
十分応用可能です。本論文の k-means法・Ward法 クラスタリングは、医療・教育・経済・環境など他のドメインでも「似たものをグループ分けする」目的で標準的に使われます。データの中身(変数)を入れ替えるだけで、別の問いにも適用できます。
Q3. 結論は本当に「因果関係」を示していますか?
本論文は「観察データ」を使った分析であり、厳密な意味での「因果関係」を完全に証明したわけではありません。あくまで「強い関連が見られた」という事実を提示しているにとどまります。真の因果を示すには、無作為化比較試験(RCT)か、自然実験を活用したIV・DiD 等の手法が必要です。
Q4. データの最新版を使うとどうなりますか?
SSDSE は毎年更新されているため、最新版を使えば近年のトレンド(特にコロナ禍以降の変化)も含めて分析できます。ただし、結論が変わる可能性もあります。それ自体が新しい発見につながります。
Q5. もっと深く学ぶには何を読めばいいですか?
「計量経済学」「データサイエンス入門」「統計的因果推論」などのテキストが入門に向いています。Python の場合は『Python ではじめる機械学習』(オライリー)、R の場合は『R で学ぶ統計学』が定番です。本サイトの他の論文も読み比べてみてください。
✅ 理解度チェック(4問)
この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。