論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
統計数理賞[大学生・一般の部] ★

若年女性の社会増減についての要因分析

⏱️ 推定読了時間: 約30分
2021年度(令和3年度)統計データ分析コンペティション | 三輪 俊太郎(滋賀大学大学院データサイエンス研究科) | 国勢調査ほか(47都道府県×3時点×145変数)/再現はSSDSE-B | ランダムフォレスト回帰・SHAP・固定効果変換
🔬 SHAP🔬 パネルデータ分析🔬 ランダムフォレスト🔬 固定効果変換🔬 特化係数🏷 移住・人口移動🏷 人口・少子化🏷 ジェンダー
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

この教材は原論文と同じデータを読み込み、同じ手順で計算し直しています。画面に出る数値と図は、あなたのブラウザがその場で計算した結果です。

原論文が使ったデータSSDSE・国勢調査・e-stat・統計ダッシュボード・RESAS
分析単位:都道府県
中核手法:因果連鎖分析・ランダムフォレスト回帰・SHAP・固定効果変換
この教材が使うデータ
原論文(PDF)若年女性の社会増減についての要因分析
統計数理賞/三輪 俊太郎(滋賀大学大学院データサイエンス研究科)
✅ この教材でできること
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
  • 数値・図を最後まで再計算できる(パネルデータ分析・相関分析)
突合監査の結果、主要データと中核手法はいずれも原論文と一致しています。

▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2021_U3_suri.py(295 行)そのものです。

🏅 論文審査会コメント(審査員はここを評価した)
「先行研究も参考に分析を実施していて、独自の指標形成も評価できる。古典的計量実証と機械学習による探索とを連携させようとする努力をきちんと試みており、実証研究の未来の方向性を示した論文として評価できる。」
出典:統計センター「統計データ分析コンペティション」受賞論文PDF掲載の審査講評。プロの審査員が何を評価し、何を注文したかは論文の読み方の最良の手本になる。
📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. データと変数(145変数のパネル)
  3. 分析方法:固定効果変換→RF→SHAP
  4. 図1:SHAP重要度ランキング(報告値の可視化)
  5. 図2:業種別 付加価値額・就業者数の増減率(報告値の可視化)
  6. 主要な発見(原論文の報告値)
  7. 表4:東京都への業種別女性転入超過数(報告値)
  8. 再現コード:女性の社会増減を読み込む(実再現)
  9. 図3:女性の社会増減率ランキング(実再現)
  10. 図4:婚姻率と女性の社会増減率(実再現)
  11. 結果の解釈と提言
  12. まとめ
  13. データ・コードのDL
  14. ⚠️ よくある誤解
  15. 📖 用語集
  16. 📐 手法ガイド
  17. 🚀 発展の可能性
  18. 🎯 自分でやってみよう
  19. 🤔 Q&A
  20. 🐍 ブラウザで動かす

🎯 この記事を読むと何ができるようになるか

📥 データの準備(再現コードを動かす前に)

このページの女性の社会増減率ランキング(図3)と婚姻率との相関(図4)は、以下の手順で自分で再現できます。コードの編集は不要です。(SHAP重要度ランキング=図1、業種別増減率=図2は、業種別就業者数などSSDSE-Bに無いデータを使うため、原論文の報告値を可視化します。)

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県別・基礎データ、社会・人口統計体系)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2021_U3_suri.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2021_U3_suri.py
図は html/figures/ に自動保存されます。
研究のテーマと目的

人口減少は平成末期の地方制度のキーワードである。人口減少には、死亡数と出生数の差による自然増減と、地域間の移動に伴う社会増減の2つの側面がある。東京圏への年齢階層別の転入超過数を見ると、15〜29歳の若年者が大部分を占めている。

先行研究(林)は、2000年以後は都市部の若年層で男性より女性の比率が高くなっており、女性は「都市部に集まり、都市部から出て行かない」傾向にあると指摘した。女性は出産を担うため、社会増減と自然増減の両面に関わる。地方は出生率が高くても、社会移動で若年女性が少なければ人口の持続可能性は乏しい——ここに若年女性のみを対象に社会移動要因を探る意義がある。

0.774
RF回帰の決定係数 R²(報告値・テストデータ)
145
用いた変数の数(47都道府県×3時点)
2位
婚姻件数の貢献度順位(報告値・正の相関)
−0.49
医療・福祉就業者数×若年女性人口(報告値・原数値2015)
研究の問い 地方から都市部へ流出する若年女性の社会移動には、どのような要因が関わっているのか。先行研究の限界(要因を網羅できていない・1時点のみ)を超え、網羅的かつ複数年で検討し、地方の持続可能性に向けた施策立案に資することを目的とする。
分析のキモ:目的変数は「30〜34歳女性人口」 著者は目的変数として、国勢調査の各都道府県30〜34歳女性人口を用いた。若者の社会移動は15〜29歳が大部分で、30〜34歳人口はその結果として捉えられること、5歳階級を用いると各調査年でコホートが重複しないこと、が理由である。

大学生・一般の部 国勢調査・SSDSE・e-Stat・RESAS ランダムフォレスト回帰 SHAP値 固定効果変換・特化係数・HHI・GGI

データと変数(145変数のパネルデータ)

要因を網羅的に検討するため、著者は因果連鎖分析を用いた。若年女性の社会移動につながる直接的な行動として「進学」「就職」「Uターン」「Iターン」を想定し、それぞれに関わる要因を可能な限り挙げて変数選択の方針とした。代理変数も積極的に用いており、例えば「交通手段の利便性」の代わりにガソリン消費量を代理変数とした。

表1 データの構成(原論文)

項目内容
目的変数国勢調査における各都道府県の30〜34歳女性人口
対象時点2005年・2010年・2015年(国勢調査の3時点)
単位47都道府県(市町村ではなく都道府県。公的統計の範囲が広いため)
変数数145変数(人口・世帯/福祉・社会保障/自然環境/生活時間/教育/経済/ジェンダー等)
データ形状47都道府県 × 3時点 × 145変数のパネルデータ
出典提供されたSSDSEのほか、e-Stat・統計ダッシュボード・RESAS

独自に作成した3つの指標

① 特化係数(LQ) 地域における産業Aの特化係数 = (地域における産業Aの比率) ÷ (全国における産業Aの比率)
→ 1より大きいほど、その産業が全国平均より集積していることを示す(産業集積の指標)。
② ハーフィンダール・ハーシュマン指数(HHI) HHI = Σ (各分野の比率)² (0〜1、0に近いほど産業・雇用の多様性が高い)
→ 地域の産業・雇用の多様性(集中度)を測る指標。
③ ジェンダーギャップ指数(GGI) 世界経済フォーラムの算出方法に基づき、経済・教育・健康・政治の4分野と総合を都道府県別に作成。
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):SHAP重要度ランキング(図1)と業種別の付加価値額・就業者数の増減率(図2)は、業種別就業者数・特化係数・国民経済計算などSSDSE-Bに無いデータに基づく。よって原論文の報告値を転記して可視化する。新たな数値の再計算ではない。
  • 実再現できる部分:SSDSE-Bには女性の転入者数・転出者数・婚姻件数が収録されている。よって「女性の社会増減(転入−転出)」と「婚姻件数」の関係は実データから再計算できる(図3・図4)。ただし目的変数が原論文(30〜34歳女性人口)とは異なり、女性全体の社会増減での近似的な確認である。

分析方法:固定効果変換 → ランダムフォレスト → SHAP

分析の流れ
145変数の
パネルデータ
固定効果変換
(時点差を除く)
RF回帰
optunaで調整
SHAP
要因の貢献度

① 時点差を取り除く固定効果変換

3時点のパネルをそのままRFに入れると、都道府県や時点による異質性が混ざる。そこで固定効果変換を行い、各変数から各時点における全都道府県の平均値を控除した(時点による異質性をキャンセル)。この変換は関数形として線形を仮定し、ランダム効果は無いと前提している点に留意が必要、と著者は述べている。

② ランダムフォレスト回帰

ランダムフォレストは決定木を元とした機械学習手法で、サンプルサイズより説明変数が多くても安定した結果が出せること、多重共線性や変数の分布形状を問わないことが特徴。scikit-learnRandomForestRegressor を用い、141件(47都道府県×3)を訓練64%・バリデーション16%・テスト20%に分割。optuna で kfold法3分割の交差検証により RMSE を最小化するようパラメータチューニングした。

③ SHAPによる貢献度分析

SHAPは、予測結果を各説明変数の貢献度に分解する指標。図3(重要度の棒グラフ)で「どの変数が効いたか」、図4(サマリプロット)で「値が高いと予測値が上がるか下がるか(相関の向き)」を読み取る。

報告された予測精度 テストデータによる予測と実測値の決定係数 R² = 0.774(RMSE = 1.44804)。141サンプルという小標本ながら、産業構造の違いで若年女性人口の8割近くを説明できたことを示す(原論文 図2)。
1
図1:SHAP重要度ランキング(報告値の可視化)

原論文の図3・図4で示されたSHAP重要度の上位変数と、その相関の向きを1枚に整理する。この図は再計算ではなく、原論文の報告値(順位と向き)をそのまま可視化したものである(業種別就業者数・特化係数はSSDSE-Bに無いため)。

やってみよう原論文 図3・図4 の報告値(順位と向き)を転記する
  • ① このコードの目的:原論文が図3で示した重要度の順位と、図4・本文で示された相関の向き(正/負)を辞書に転記する。SHAP値そのものの数表は論文に無いため転記せず、棒の長さは順位を表す便宜的なものとする(再計算ではない)。
  • ② 前後のつながり:この報告値がそのまま図1になる。実データで確かめられる「婚姻件数」は、後半(図4)で実際に相関を計算し照合する。
▼ 実行結果(原論文の報告値)
=== [2] 報告値:SHAP 重要度ランキング(原論文 図3・図4)===
順位  相関の向き  変数
   1    正     特化係数 就業者数(女) L学術研究・専門・技術サービス業
   2    正     婚姻件数
   3    負     就業者数(女) Q複合サービス事業
   4    負     就業者数 家族従事者
   5    正     特化係数 就業者数(女) H運輸業・郵便業
   6    正     特化係数 就業者数 G情報通信業
   7    正     特化係数 就業者数(女) K不動産業・物品賃貸業
   8    正     就業者数(女) K不動産業・物品賃貸業
   9    正     就業者数 G情報通信業
  10    —     通勤通学の平均時間 女性有業者
  11    負     就業者数(女) A農業・林業
  12    正     就業者数(女) H運輸業・郵便業
報告値:テストデータの決定係数 R² = 0.774(RMSE = 1.44804, 図2)
報告値:医療・福祉就業者数と若年女性人口の相関(原数値・2015年)= −0.49
向きは原論文本文で明示された業種のみ(正/負)。「—」は本文で向きの明示なし。
  → html/figures/2021_U3_fig1_radar.png 保存完了
  • ④ 実行結果の読み取り:1位が「学術研究・専門・技術サービス業の特化係数(就業者数・女)」で正の相関、2位が婚姻件数で正の相関。負の相関には複合サービス事業・家族従事者・農業林業が並ぶ。予測精度 R²=0.774。これらはすべて原論文の報告値である。
若年女性人口へのSHAP重要度ランキング(報告値の可視化)
図1:SHAP重要度の上位変数と相関の向き。報告値の可視化(再計算ではない)(原論文 図3・図4)。青=正の相関(本文明示)、赤=負の相関(本文明示)、灰=向きの明示なし。棒の長さは順位を表す便宜的表現でSHAP値そのものではない。
📊 この図の読み方
青い棒(正)
その産業の就業者比率(特化係数)が高い県ほど、若年女性人口の予測値が高い。学術研究・専門・技術サービス業、運輸業・郵便業、情報通信業、不動産業が該当。
赤い棒(負)
複合サービス事業・家族従事者・農業林業。値が高い県ほど若年女性人口の予測値が低い。
婚姻件数(2位)
産業以外で唯一上位に食い込む。若年女性人口と正の相関(→図4で実データ確認)。
位置づけ
報告値の可視化。順位・向きは原論文の報告値で、本ページで新たに計算したものではない。
2
図2:業種別 付加価値額・就業者数の増減率(報告値の可視化)

SHAPで正の相関が出た産業が、日本全体でどう伸びたのかを確認するため、著者は国民経済計算上の2005年→2015年の増減率を表3にまとめた。この図は原論文 表3 の報告値を可視化したものである(国民経済計算はSSDSE-Bに無い)。

やってみよう原論文 表3 の増減率を転記する
  • ① このコードの目的:原論文 表3(国民経済計算上の2005→2015増減率)を業種ごとに転記し、付加価値額と就業者数を並べて棒グラフにする。再計算ではなく報告値の転記。
  • ② 前後のつながり:図1でSHAP正の相関が出た「専門・科学技術・業務支援サービス業」が、実際に大きく伸びたことをここで裏づける。
▼ 実行結果(原論文の報告値)
=== [3] 報告値:表3 国民経済計算 2005→2015 増減率 ===
業種                        付加価値額%     就業者数%
専門・科学技術・業務支援サービス業           28.3      23.3
運輸・郵便業                       5.1       1.8
情報通信業                        0.8       5.4
不動産業                         9.8      12.2
(参考)保健衛生・社会事業               30.9      40.7
国内総生産                        1.0       0.0
原論文の記述:全体はほぼ横ばいだが、専門・科学技術サービス業と保健衛生・社会事業で伸びが大きい。
  • ④ 実行結果の読み取り:国内総生産がほぼ横ばい(付加価値+1.0%・就業者0.0%)の中、専門・科学技術サービス業(付加+28.3%・就業+23.3%)と保健衛生・社会事業(付加+30.9%・就業+40.7%)が突出して伸びている。前者は都市部に偏った伸びで若年女性を惹きつけ、後者は伸びても地方の受け皿になりうる、と著者は解釈した。
業種別 付加価値額・就業者数の増減率(報告値の可視化)
図2:業種別 2005→2015 増減率。報告値の可視化(再計算ではない)(原論文 表3・国民経済計算)。青=付加価値額、橙=就業者数。
3
主要な発見(原論文の報告値)

以下の相関の向き・数値はすべて原論文の報告値である。

産業面:特定産業の集積が若年女性人口と相関

相関の向き業種(就業者比率・特化係数)著者の解釈
正(+)学術研究・専門・技術サービス業/運輸業・郵便業/情報通信業/不動産業・物品賃貸業都市部に偏って集積するホワイトカラー系。若年女性が就業機会を見出している
負(−)複合サービス事業(郵便局・農協)/家族従事者/農業・林業全国に満遍なく広がり都市集積が起きにくい

産業面以外:婚姻件数が貢献度2位(正の相関)

婚姻件数は若年女性人口と正の相関(貢献度2位)。地方における婚姻数増加の取り組みは有効と考えられる、と著者は述べる。一方、女性の家族従業者は負の相関で、外に出て働く生活スタイルが多い場所に若年女性が集まっていることが窺えた。教育・福祉・ジェンダー(GGI)については、SHAP上の貢献度は認められなかった。

興味深い例外:医療・福祉

医療・福祉は全国的に伸びたが、若年女性人口とは負の相関 2015年時点の医療・福祉就業者数と若年女性人口の相関(原数値・報告値=−0.49)はやや大きい負の相関。全国的な伸びがある一方、都市部に偏った若年女性就業者の伸びではないことを意味する。表4を見ると、医療・福祉は30〜34歳では東京都から転出するが、20〜24歳・25〜29歳では東京都へ大きく転入超過。専門・技術サービス業のように「地域を超えてサービスを提供」できないため、産業集積で地域人口以上に需要が増えることは考えにくい、と著者は分析した。

表4:東京都への業種別女性転入超過数(報告値)

国勢調査は5年前の居住地を調査しており、業種・年齢5歳階級ごとの転入・転出数が得られる。表4は2010年国勢調査における東京都への女性の転入超過数(20〜34歳の合計)の主な業種で、原論文 表4 の報告値である(再計算ではない)。

業種東京都への女性転入超過数(20〜34歳合計)向き
G 情報通信業+8,368最大の転入超
M 宿泊業・飲食サービス業+6,959転入超
I 卸売業・小売業+6,782転入超
P 医療・福祉+4,68720代は転入超・30〜34歳は転出
J 金融業・保険業+2,775転入超
L 学術研究・専門・技術サービス業+2,633転入超
N 生活関連サービス業・娯楽業+2,199転入超
K 不動産業・物品賃貸業+1,002転入超
A 農業・林業−497全年齢階級で東京都から転出超過

情報通信業の転入超過が最大。著者は「情報通信業などで完全リモートワークが可能な企業と地方が連携し就業に繋げる」方向性を提案。また農業は全年齢階級で東京都から転出超過であり、「女性が農業で働きやすい環境を整える」施策も考えられるとした。

4
再現コード:女性の社会増減を読み込む(実再現)

原論文の目的変数(30〜34歳女性人口)はSSDSE-Bに無い。しかしSSDSE-Bには女性の転入者数・転出者数があるので、原論文の核心概念である「社会増減」を女性全体で実データから再現できる。まず読み込む。

やってみようSSDSE-B を読み込み、女性の社会増減を用意する【実再現】
  • ① このコードの目的:SSDSE-B を cp932・header=1 で読み込み、都道府県行(地域コード R+5桁、全国 R00000 を除外)の2023年を残す。転入者数(女)−転出者数(女)=女性の社会増減を計算し、女性人口千人あたりに規格化する。婚姻率も同様に用意する。
  • ② 前後のつながり:ここで用意した女性の社会増減が、原論文の中核概念(社会移動)にあたる。以降でランキング(図3)と婚姻率との相関(図4)を実データで確かめる。
📝 コード
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
df_raw = pd.read_csv(DATA_B, encoding='cp932', header=1)

# 都道府県行のみ(地域コード R+5桁、全国 R00000 を除外)
mask = (df_raw['地域コード'].astype(str).str.match(r'^R\d{5}$', na=False) &
        (df_raw['地域コード'] != 'R00000'))
df_all = df_raw[mask].copy()

# 最新の 2023 年(女性の転入・転出・婚姻件数が揃う年)
d = df_all[df_all['年度'] == 2023].copy().reset_index(drop=True)

num_cols = ['総人口', '総人口(女)',
            '転入者数(日本人移動者)(女)', '転出者数(日本人移動者)(女)',
            '婚姻件数']
for c in num_cols:
    d[c] = pd.to_numeric(d[c], errors='coerce')

# 女性の社会増減 = 転入(女) − 転出(女)。人口比で規格化して都道府県間で比較可能に
d['女性純移動'] = d['転入者数(日本人移動者)(女)'] - d['転出者数(日本人移動者)(女)']
d['女性純移動率'] = d['女性純移動'] / d['総人口(女)'] * 1000   # 女性人口千人あたり
d['婚姻率'] = d['婚姻件数'] / d['総人口'] * 1000                 # 人口千人あたり
d['地域'] = d['都道府県'].map(REGION_MAP)
d = d.dropna(subset=['女性純移動率', '婚姻率']).reset_index(drop=True)
▼ 実行結果
=== [1] SSDSE-B 読み込み(女性の社会増減を用意)===
対象:47都道府県(2023年)
女性純移動率  平均 -1.82 / 最大 +4.55 / 最小 -5.85(女性人口千人あたり)
女性が社会増(転入超)の都道府県:6 / 47  → 残り41県は社会減(転出超)
原論文の目的変数は国勢調査の 30〜34 歳女性人口。SSDSE-B には年齢×性別の
内訳が無いため、ここでは「女性全体の社会増減(転入−転出)」で核心の構図を確認する。
  • ④ 実行結果の読み取り:2023年の47都道府県のうち、女性が社会増(転入超)なのはわずか6県で、41県は社会減(転出超)。地方から都市部へ女性が流出する構図が、女性全体の社会増減でも確認できる。原論文の30〜34歳女性人口とは目的変数が異なるが、社会移動の向きは共通。
5
図3:女性の社会増減率ランキング(実再現)
やってみよう女性の社会増減率で都道府県をランキングする【実再現】
  • ① このコードの目的:女性純移動率で47都道府県を降順に並べ、転入超(社会増)の上位と転出超(社会減)の下位を書き出す。原論文が背景に置いた「東京圏への一極集中」を実データで可視化する。
  • ② 前後のつながり:ここで得た順位を、図3の横棒ランキングにする(地図の代わりに順位で東京圏集中を表現)。
📝 コード
226
227
228
229
230
231
ds = d.sort_values('女性純移動率', ascending=False).reset_index(drop=True)
print('▼ 転入超(社会増)上位5')
print(ds[['都道府県', '女性純移動率']].head(5).to_string(index=False))
print('▼ 転出超(社会減)上位5')
print(ds[['都道府県', '女性純移動率']].tail(5).iloc[::-1].to_string(index=False))
print('原論文の背景「東京圏への若年女性の一極集中」が、女性全体の社会増減でも確認できる。')
▼ 実行結果
=== [4] 実再現:女性の社会増減率ランキング(2023, SSDSE-B)===
▼ 転入超(社会増)上位5
都道府県   女性純移動率
 東京都 4.546152
 千葉県 2.695693
神奈川県 2.682004
 埼玉県 2.645895
 大阪府 1.748031
▼ 転出超(社会減)上位5
都道府県    女性純移動率
 長崎県 -5.849254
 青森県 -4.837061
 岩手県 -4.589701
 山形県 -4.418561
 鳥取県 -3.957143
原論文の背景「東京圏への若年女性の一極集中」が、女性全体の社会増減でも確認できる。
  • ④ 実行結果の読み取り:転入超の上位は東京都・千葉・神奈川・埼玉と東京圏が独占し、大阪・福岡が続く。転出超の下位は長崎・青森・岩手・山形など地方が並ぶ。原論文の「若年女性の東京圏一極集中」が、女性全体の社会増減でもはっきり再現された。
女性の社会増減率 都道府県ランキング(実再現)
図3:女性の純移動率(転入−転出/女性人口千人)ランキング(SSDSE-B 2023年、N=47)。実再現:色は地域ブロック。地図の代わりにランキングで東京圏集中を表現。
📊 この図の読み方
右(プラス)
女性が転入超=社会増。東京都が突出し、千葉・神奈川・埼玉と東京圏(緑)が上位を占める。
左(マイナス)
女性が転出超=社会減。長崎・青森・岩手・山形など地方が並び、女性の流出が続いている。
位置づけ
実再現。原論文は30〜34歳女性人口を扱ったが、女性全体の社会増減でも東京圏集中という構図は共通。
6
図4:婚姻率と女性の社会増減率(実再現)

原論文で産業以外の唯一の上位要因だった婚姻件数。婚姻件数はSSDSE-Bに収録されているので、実データで確かめられる。婚姻率と女性の社会増減率の相関を計算する。

やってみよう婚姻率と女性の社会増減率の相関を計算する【実再現】
  • ① このコードの目的:婚姻率(婚姻件数/人口千人)と女性純移動率の相関係数を実際に計算し、原論文が報告した「婚姻件数と若年女性人口の正の相関(貢献度2位)」を実データで確かめる。
  • ② 前後のつながり:ここで正の相関が再現するかを確認してから、図4の散布図を描く。
📝 コード
254
255
256
257
258
259
xr = d['婚姻率'].values
yr = d['女性純移動率'].values
r_val, p_val = stats.pearsonr(xr, yr)
slope, intercept, _, _, _ = stats.linregress(xr, yr)
print(f'相関係数 r = {r_val:.3f}(p = {p_val:.4f}, N = {len(d)})')
print('原論文は、婚姻件数が若年女性人口への貢献度2位で「正の相関」と報告している。')
▼ 実行結果
=== [5] 実再現:婚姻率 × 女性純移動率の相関(2023)===
相関係数 r = 0.791(p = 0.0000, N = 47)
原論文は、婚姻件数が若年女性人口への貢献度2位で「正の相関」と報告している。
SSDSE-B(2023) の実データでも、婚姻率と女性の社会増減率は強い正の相関(r=0.79)を示し、
原論文の「婚姻数と若年女性人口は正の相関」という核心が実データで再確認できた。
※ ただし原論文は 30〜34 歳女性人口を目的変数とした RF+SHAP による貢献度であり、
  これは横断(1時点)の単純相関。手法・目的変数が異なる近似的な確認である点に注意。
  • ④ 実行結果の読み取り:再計算 r=0.791(p<0.001)。婚姻率が高い県ほど女性の社会増減もプラス寄りで、原論文の「婚姻と若年女性人口は正の相関」という核心が実データでも強く再確認できた。ただし原論文はRF+SHAPによる貢献度、こちらは横断の単純相関であり、目的変数・手法が異なる近似的な確認である点に注意。
婚姻率と女性の社会増減率の散布図(実再現)
図4:婚姻率と女性の純移動率(SSDSE-B 2023年、N=47)。実再現:再計算 r=0.791(p<0.001)。原論文は婚姻件数を若年女性人口への貢献度2位・正の相関と報告。
📊 この図の読み方
右肩上がり
婚姻率が高い県ほど、女性の社会増減がプラス(転入超)寄り。東京圏(緑)は右上に集まる。
因果ではない
婚姻が女性を集めるのか、女性が集まる県で婚姻が多いのかは、この相関だけでは決められない。原論文もRFは「予測であり因果ではない」と明記している。
位置づけ
実再現(近似)。原論文(30〜34歳女性人口を目的変数としたRF+SHAP)とは目的変数・手法が異なる横断的な確認。

結果の解釈と提言(原論文「4. 考察」)

産業面:地方が都市部と正面から対抗するのは困難

特定産業の集積が若年女性人口と相関しているが、専門・科学技術・業務支援サービス業などは都市部に集積するため、地方が産業面で都市部と対抗することは困難だと著者は述べる。より小さな面積で産業集積を図るか、よりニッチな部分で若年女性を惹きつけるしかないのではないか、と提言する。

具体的な施策の方向性

表4で転入超過が最大だった情報通信業に着目し、「完全リモートワークが可能な企業と地方が連携して就業に繋げる」方向性を提案。また、農業は全年齢階級で東京都から転出超過であることから、「女性が農業で働きやすい環境を整える」施策も挙げている。産業面以外では、婚姻数増加に向けた取り組みが有効と考えられる。

ジェンダーギャップ指数(GGI)について GGIはSHAP上の貢献度が認められなかった。著者は、GGIが元々は開発途上国も含めた指標で、日本国内のみだと健康・教育分野で男女格差が出にくいこと、給与に関わる男女格差を反映できていないことを指摘。ただしGGIは2005→2015年に各都道府県で上昇傾向にあり、細かく検討する価値はあるかもしれない、としている。

まとめ

本研究は、若年女性の社会移動に関わる要因を145変数・3時点で網羅的に検討し、固定効果変換+ランダムフォレスト+SHAPで優先すべき要因を抽出した点に価値がある。特定産業の集積(専門・技術サービス業など)と婚姻件数が若年女性人口と正の相関を持つことを示し(予測精度 R²=0.774)、地方の持続可能性に向けた施策(リモートワーク連携・農業環境整備・婚姻支援)を提言した。

この研究の限界(原論文) ①ランダムフォレストは予測手法であり因果関係を示すものではない(「専門サービス業の就業者を増やせば若年女性が増える」とは言えない)。Causal Forestなど因果推論可能な手法への発展が考えられる。②固定効果変換+RFという手法の適切性。③人口という量的側面のみで持続可能性を捉えてよいか(人材の質も関わる)。
この研究から学べること 多数の要因の中から重要なものを機械学習で探索し(RF+SHAP)、古典的な計量実証(相関・特化係数)と連携させる姿勢。審査会も「古典的計量実証と機械学習による探索とを連携させ、実証研究の未来の方向性を示した」と評価した。

データ・コードのダウンロード

このページの女性の社会増減率ランキング(図3)と婚姻率との相関(図4)は、以下から再現できます。

🐍 再現コード(.py) 📊 SSDSE-B-2026.csv

※ SHAP重要度ランキング(図1)と業種別増減率(図2)は、業種別就業者数・特化係数・国民経済計算などSSDSE-B外のデータに基づくため、原論文の報告値を可視化したものです。図3・図4は女性全体の社会増減での近似的な確認で、原論文の目的変数(30〜34歳女性人口)とは異なります。

⚠️ よくある誤解と注意点

この研究を読むとき・まねするときに陥りやすい誤解を整理する。

誤解1:「専門サービス業を地方で増やせば、若年女性が増える」
ランダムフォレストは予測のための手法であり、因果関係を示すものではない。言えるのは「関連の強さ」まで。著者自身も「就業者を増やせば若年女性人口は増える、とは本研究からは言えない」と明記している。因果を問うにはCausal Forestなどが必要。
誤解2:「SHAPで上位=その産業が原因」
SHAPは予測モデルの貢献度を分解する指標で、モデルの予測に効いた変数を示すだけ。相関の向き(正/負)は分かるが、背後のメカニズム(都市集積・女性のキャリア志向など)は別途考察が必要。
誤解3:「医療・福祉は伸びているのに負の相関だから、地方で伸ばしても無意味」
負の相関は「都市部に偏った若年女性就業者の伸びではない」ことを意味する。むしろ医療・福祉は地方における若年女性就業の受け皿になっている可能性がある、と著者は多面的に読み解いている。単純化しないこと。
誤解4:「このページの図はすべて原論文と同じ数値」
図1・図2は原論文の報告値の可視化(再計算ではない)。図3・図4は実再現だが、SSDSE-Bには30〜34歳女性人口が無いため女性全体の社会増減での近似であり、目的変数・手法・年次が原論文と異なる。図注に明記している。

📖 用語集(この記事に出てくる統計用語)

クリックすると各用語の詳しい解説ページに移動できます。

ランダムフォレスト
多数の決定木を組み合わせる機械学習手法。説明変数が多くても安定し、多重共線性や分布形状を問わない。予測が主目的で、因果関係は示さない。
SHAP
予測結果を各説明変数の貢献度に分解する指標。どの変数がどれだけ効いたか、正負どちらに寄与したかを可視化できる。
固定効果変換
パネルデータで、時点や個体による一定の異質性を平均の控除により取り除く操作。本研究では各時点の全国平均を各変数から控除した。
パネルデータ
同じ対象(都道府県)を複数時点で観測したデータ。本研究は47都道府県×3時点×145変数。
特化係数(LQ)
ある地域の産業比率を全国比率で割った値。1より大きいほどその産業が集積していることを示す。
HHI
ハーフィンダール・ハーシュマン指数。各分野比率の2乗和で産業・雇用の多様性(集中度)を測る。
社会増減
地域間の移動(転入−転出)による人口の増減。死亡・出生による自然増減と対をなす。
相関係数
2つの数量が一緒に増減する強さと向きを−1〜+1で表す指標。本ページの図4で婚姻率×女性社会増減に使う。

📐 使っている手法をわかりやすく解説

この研究で使われている手法を、手を動かす順に説明する。

全体像
145変数のパネルを固定効果変換で時点差を除く → ランダムフォレスト回帰で若年女性人口を予測 → SHAPで各要因の貢献度と向きを読む。機械学習による探索と、特化係数・HHI・GGIという古典的指標の作成を連携させるのが見どころ。
🌳 ランダムフォレスト回帰
何をする
多数の決定木の平均で目的変数(30〜34歳女性人口)を予測する。141サンプル・145変数でも安定に扱える。
読み方
テストデータのR²=0.774が予測精度。訓練/バリデーション/テストに分け、optunaでRMSEを最小化するようチューニング。
注意
予測手法であり因果ではない。訓練データやパラメータで結果が多少変動する(著者は3回実行し、抽出変数はほぼ不変と確認)。
🔍 SHAP(貢献度分析)
何をする
ブラックボックスなRFの予測を、各変数の貢献度に分解して解釈可能にする。
なぜ必要
「どの変数が効いたか」「値が高いと予測が上がるか下がるか(相関の向き)」を読み取るため。
注意
貢献度の順位・向きは分かるが、背後の因果メカニズムは別途考察が必要。SHAP値の絶対量は解釈に注意。
🧮 固定効果変換と独自指標
何をする
各時点の全国平均を控除して時点の異質性を除く。産業集積は特化係数、多様性はHHI、男女格差はGGIで数値化。
なぜ必要
3時点を混ぜる際の異質性を抑え、規模の違う変数を比較可能にするため(人口千人あたり等のスケーリングも実施)。
注意
固定効果変換は関数形として線形を仮定し、ランダム効果は無いと前提している点に留意。

🚀 発展の可能性(結果 X → 新仮説 Y → 課題 Z)

この研究の「関連は見つけたが因果は不明」という結論は、次の研究の出発点になる。

発展1:因果推論可能な機械学習へ
結果X
特定産業の集積・婚姻件数が若年女性人口と相関するが、RFは予測手法で因果は言えない。
新仮説Y
専門・技術サービス業の集積は、本当に若年女性の転入を「引き起こす」のか。
課題Z
Causal Forestなど因果推論が可能な機械学習手法で、処置効果として精緻に検証する(原論文が明示した発展方向)。
発展2:年齢×性別の転入転出フローを直接使う
結果X
表4のように、業種×年齢階級ごとの転入超過には向きの違いがある(医療福祉は20代転入・30代転出)。
新仮説Y
若年女性の社会移動は、年齢階級と業種の組み合わせで大きく異なるのでは。
課題Z
国勢調査の従業地・年齢階級別移動データを目的変数に組み込み、産業×年齢の交互作用を明示的にモデル化する。

🎯 自分でやってみよう(5つのチャレンジ)

再現コードを少し変えるだけで試せる課題を、易しい順に用意した。

★☆☆☆☆ 難易度1
別の年で社会増減を出す
読み込みの d = df_all[df_all['年度'] == 2023] を 2022 や 2015 に変えて、女性の社会増減率ランキングが年で変わるか確かめよう。
★★☆☆☆ 難易度2
男性の社会増減と比べる
列を「転入者数(日本人移動者)(男)」「転出者数(日本人移動者)(男)」に差し替え、男女で東京圏集中の強さが違うか比べよう(先行研究では女性の方が都市集中が強い)。
★★★☆☆ 難易度3
出生率や消費支出と相関させる
図4の婚姻率を「合計特殊出生率」や「消費支出(二人以上の世帯)」に変えて、女性の社会増減との相関を見よう。婚姻率ほど強いか?
★★★★☆ 難易度4
複数変数でランダムフォレストを組む
SSDSE-Bの数値列を説明変数、女性純移動率を目的変数にして sklearn.ensemble.RandomForestRegressor を回し、feature_importances_ で重要変数を出そう。
★★★★★ 難易度5
SHAPで貢献度を分解する
shap ライブラリを入れ、難易度4のRFモデルに shap.TreeExplainer を適用して、婚姻率・出生率などの貢献度と向きを可視化しよう。原論文の図3・図4を自分のデータで再現する体験になる。
ヒント:pip install shap。まず数変数の小さなモデルから始めると読み解きやすい。

💼 この手法は実社会でこう使われている

「多数の要因から重要なものを機械学習で探索し、政策に活かす」発想は、現場でも広く使われている。

🏙️
地方創生・EBPM
人口流出の要因を多変数で探索し、どの産業誘致や支援策が効きそうかの優先順位づけに使う。因果推論と組み合わせて政策効果を検証する。
🤖
機械学習の説明可能性(XAI)
SHAPは与信・医療・製造の予測モデルで「なぜこの予測か」を説明するのに広く使われる。ブラックボックスの意思決定を透明化する。
🏢
立地・人材戦略
特化係数で地域の産業集積を測り、リモートワーク拠点や女性が働きやすい職場の立地選定・人材採用戦略に活かす。

🤔 よくある質問(読者からの想定Q&A)

この研究を読んで浮かびやすい疑問に答える。

Q. なぜ目的変数が30〜34歳女性人口なの?若者は15〜29歳では?
A. 若者の社会移動は15〜29歳が大部分ですが、30〜34歳人口はその移動の「結果」として捉えられます。また5歳階級を使うと2005・2010・2015年でコホートが重複せず、世代の影響を取り除けるためです。
Q. このページの図は原論文と同じ数値ですか?
A. 一部だけ実再現です。図1(SHAP重要度)と図2(業種別増減率)は、業種別就業者数・特化係数・国民経済計算などSSDSE-B外のデータに基づくため原論文の報告値を可視化したもの。図3・図4はSSDSE-Bの女性の転入・転出・婚姻件数から実際に計算した実データですが、原論文の目的変数(30〜34歳女性人口)とは異なる女性全体の社会増減での近似です。図注に明記しています。
Q. ランダムフォレストで「要因」が分かったなら、因果が分かったのでは?
A. いいえ。RFは予測手法で、示せるのは「関連の強さ」までです。著者も「専門サービス業の就業者を増やせば若年女性が増える、とは言えない」と明記し、因果を問うにはCausal Forestなどの因果推論手法が必要だと述べています。
Q. 婚姻率と女性社会増減の相関(r=0.79)は、婚姻が女性を集めた証拠?
A. 相関は向きと強さを示すだけで、因果の向きは決められません。婚姻が女性を集めるのか、女性が集まる県で婚姻が多いのか(あるいは第3の要因か)はこの図だけでは分かりません。原論文の慎重な姿勢に倣うことが大切です。

✅ 理解度チェック(4問)

この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。

🐍 ブラウザで動かす — インストール不要でこの論文の分析を再現する

このページの分析は、この画面の中でそのまま実行できます。 Python をインストールする必要も、CSV をダウンロードする必要もありません。 下のセルの 「▶ ブラウザで実行」 を上から順に押すか、 「▶ 最初から全部実行」 で一気に流してください。 表示されるのは、本文の図表とまったく同じ計算の結果です (動かしているのは再現スクリプト code/2021_U3_suri.py そのもの)。

コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。