🎯 この記事を読むと何ができるようになるか
研究の核心: 「少子化」という大きな社会問題を、教育費・婚姻・保育・育児という身近な要因に分解し、都道府県データの相関で迫る発想
指標の選び方: 合計特殊出生率(TFR)と「千人あたり出生数」を使い分ける理由を、相関の強さから判断する考え方
分析手法: 箱ひげ図 で外れ値を見つけて除外し、平均でグループ分け して比較する方法
読み方: 「相関があっても因果ではない」「見かけの相関(擬似相関)に注意」という慎重な姿勢
再現: SSDSE-B から婚姻・出生・教育費・TFR の相関を自分で計算し、報告値と照合する力
📥 データの準備(再現コードを動かす前に)
このページの婚姻・出生・TFR・教育費の相関(図1・図2・図3右) は、以下の手順で自分で再現できます。コードの編集は不要です。 (私立中学校数で分けたグループ別相関・育児時間との相関は、本リポジトリの SSDSE-B には無いデータのため、原論文の報告値を可視化します。)
1
データをダウンロードする
独立行政法人統計センターの
SSDSE (教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ←
SSDSE-B (都道府県別・基礎データ)
📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する
ダウンロードした
CSV を、プロジェクトの
data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/
├── code/
│ └── 2021_H5_5_shorei.py ← 実行するスクリプト
└── data/
└── raw/
SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する
ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2021_H5_5_shorei.py
図は
html/figures/ に自動保存されます。
著者たちは「社会をより良くする障害は何か」を話し合い、少子化が多くの社会問題の根底にある と考えた。日本の合計特殊出生率(TFR)は年々低下し、人口を維持するのに必要な人口置換水準 2.07 に対し、原論文執筆時点の一昨年(2019年)は 1.34 と大きく下回っていた(いずれも原論文の報告値)。
そこで「少子化の原因を探るために、出生率・出生数と各種統計の相関関係を調べる」 ことにした。
少子化の要因を、各家庭である程度変えられる家庭的な要因 (①教育費、②婚姻数・離婚数)と、
周囲の環境に左右され個人ではどうしようもない環境的な要因 (①保育施設数、②育児時間)に分け、
それぞれが出生数・TFR とどう関係するかを見ていく。
55.5%
「子供を増やしたくない理由」で最多=教育費(原論文引用の国際意識調査)
−0.53
私立中学校数が平均以上の県:教育費×TFR(報告値 r)
研究の問い
出生率・出生数は、家庭的な要因(教育費・婚姻/離婚数)と環境的な要因(保育施設数・育児時間)と、どのような相関関係を持つか。相関が見つかれば、その事象が少子化に関連していることを示せると考えた。
仮説(原論文 1.5)
著者は公民科資料や国際意識調査から「子供を増やしたくない理由」の1位が「子育てや教育にお金がかかりすぎるから」(55.5%) である点に注目。結婚意識の低下による未婚化・晩婚化も直接的原因と考え、要因を「家庭的」「環境的」に分けて仮説を立てた。
高校生の部
SSDSE-B / SSDSE-D
学校基本調査・厚労省・国際意識調査
相関分析・散布図
箱ひげ図・グループ分け
データと変数・用語の定義
表1 使用したデータ(原論文)
分類 おもな項目 出典(原論文)
人口・出生・婚姻 総人口、出生数、合計特殊出生率(TFR)、婚姻件数、離婚件数、幼稚園数、保育所等数、教育費(二人以上の世帯) SSDSE-B -2021(2018年)
育児時間 09_育児(1日に育児にかけた時間) SSDSE-D -2021(2016年)
私立中学校数 中学校 都道府県別学校数(私立・本校を抜粋) 学校基本調査(文部科学省・2020年)
合計特殊出生率の推移 全国TFRの年別推移(1950〜2019年) 厚生労働省
表2 用語の定義(原論文 3.1)
用語 定義
合計特殊出生率(TFR) 15〜49歳の1人の女性が一生の間に生むとしたときの子どもの数(単位なし)
出生数 出生した数(人)。本研究では「人口千人あたり出生数」に換算して比較
純結婚数 婚姻数 − 離婚数(婚姻数だけでは離婚数を反映しないため)
外れ値 Q1−1.5(Q3−Q1) 未満、または Q3+1.5(Q3−Q1) 超の値。箱ひげ図 で判定し除外(出生数では沖縄県・秋田県)
再現可能性の整理(このページの図の作り方)
実再現できる部分: 婚姻件数・離婚件数・出生数・TFR・幼稚園数・保育所等数・教育費(二人以上の世帯)は、本リポジトリの SSDSE-B -2026 に都道府県×年で収録されている。よってこれらどうしの相関は実データから再計算できる (図1・図2・図3右)。原論文と同じ2018年断面 で再現し、断面年を揃えて比較する。
報告値の可視化(再計算ではない): 「私立中学校数(学校基本調査)」で分けたグループ別相関(図[6]〜[9])と、「育児時間(SSDSE-D 2016年)」との相関(図[14]〜[16])は、本リポジトリの SSDSE-B には無いデータで再現できない。よってこれらの相関係数は原論文の報告値を転記して可視化 する(図3左・図4)。新たな数値の再計算ではない。
使う統計手法
千人あたりに 換算
→
箱ひげ図 で 外れ値除外
→
散布図 +相関係数
→
平均で グループ分け比較
原論文の相関の目安:|r|>0.7で強い相関、0.4≤|r|≤0.7で相関、0.2≤|r|<0.4で弱い相関、|r|<0.2でほとんど相関なし。
まず SSDSE-B から、原論文が使ったのと同じ変数(出生数・婚姻件数・離婚件数・TFR・教育費・幼稚園数・保育所等数)を読み込み、都道府県の人口規模の違いをならすために「人口千人あたり」 に換算する。
① このコードの目的: SSDSE-B-2026 を cp932・skiprows=[1] で読み込み、原論文と同じ2018年 の47都道府県を取り出す。総人口で割って「人口千人あたり出生数・婚姻件数・純結婚数」を作り、TFR・教育費・保育施設の指標も用意する。
② 前後のつながり: ここで作った関数 make_frame と 2018年のデータ d を土台に、以降のすべての相関を計算していく。
📝 コード
📋 コピー 61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 raw = pd . read_csv ( DATA_B , encoding = 'cp932' , skiprows = [ 1 ])
def make_frame ( year ):
"""指定年の47都道府県について、少子化分析用の指標を計算して返す。"""
d = raw [ raw [ 'SSDSE-B-2026' ] == year ] . copy ()
d [ 'births_p1000' ] = d [ 'A4101' ] / d [ 'A1101' ] * 1000 # 人口千人あたり出生数
d [ 'marr_p1000' ] = d [ 'A9101' ] / d [ 'A1101' ] * 1000 # 人口千人あたり婚姻件数
d [ 'netmarr_p1000' ] = ( d [ 'A9101' ] - d [ 'A9201' ]) / d [ 'A1101' ] * 1000 # 千人あたり純結婚数
d [ 'tfr' ] = d [ 'A4103' ] # 合計特殊出生率(TFR)
d [ 'edu' ] = d [ 'L322108' ] # 教育費(二人以上の世帯)
d [ 'childcare_p1000' ] = ( d [ 'E1101' ] + d [ 'J2503' ]) / d [ 'A1101' ] * 1000 # 千人あたり(幼稚園+保育所等)
return d
d = make_frame ( YEAR )
print ( f 'SSDSE-B-2026 読み込み: N = { len ( d ) } 都道府県(断面年: { YEAR } 年 = 原論文と同じ)' )
print ( f '人口千人あたり出生数: 平均 { d [ "births_p1000" ] . mean () : .2f } 人'
f '( { d [ "births_p1000" ] . min () : .2f } 〜 { d [ "births_p1000" ] . max () : .2f } )' )
print ( f '合計特殊出生率(TFR): 平均 { d [ "tfr" ] . mean () : .3f } '
f '( { d [ "tfr" ] . min () : .2f } 〜 { d [ "tfr" ] . max () : .2f } )' )
print ( '原論文の報告値(参考): 人口置換水準 TFR=2.07、2019年の全国TFR=1.34' )
# ══════════════════════════════════════════════════════════════
# 図1【実再現】千人あたり婚姻件数 × TFR / 千人あたり出生数(原論文 図[4][5])
# 原論文の主張: TFRは婚姻件数とあまり相関しない(報告値 r≒0.26)が、
④ 実行結果の読み取り: SSDSE-B-2026 読み込み: N = 47 都道府県(断面年: 2018年 = 原論文と同じ)
人口千人あたり出生数: 平均 7.13 人(5.12〜10.82)
合計特殊出生率(TFR): 平均 1.503(1.20〜1.89)
原論文の報告値(参考): 人口置換水準 TFR=2.07、2019年の全国TFR=1.34
原論文は分析対象として TFR と「千人あたり出生数」の2つを持っていた。どちらを主軸にするかを、婚姻件数との相関の強さで決めている。まずはその判断を実データで確かめる。
① このコードの目的: 「人口千人あたり婚姻件数」が、TFR と 千人あたり出生数のどちらと強く相関するかを実際に計算 する。原論文が「TFR ではなく出生数を主に使う」と判断した根拠(3.4)を再現する部分。
② 前後のつながり: ここで出生数の方が強く相関することを確かめてから、以降の分析はすべて「千人あたり出生数」を軸に進める。
📝 コード
📋 コピー r_tfr , p_tfr = stats . pearsonr ( d [ 'marr_p1000' ], d [ 'tfr' ])
r_bir , p_bir = stats . pearsonr ( d [ 'marr_p1000' ], d [ 'births_p1000' ])
print ( f '千人あたり婚姻件数 × TFR : r = { r_tfr : +.4f } (p = { p_tfr : .3f } )'
f ' ← 原論文の報告値 r≒0.26' )
print ( f '千人あたり婚姻件数 × 千人あたり出生数: r = { r_bir : +.4f } (p = { p_bir : .1e } )'
f ' ← 原論文の報告値: 強い正の相関' )
print ( '→ TFRとの相関は弱く、出生数の方が婚姻件数と強く相関する、という原論文の判断を再現。' )
④ 実行結果の読み取り: === 図1【実再現】婚姻件数と TFR・出生数の相関(2018年断面で再計算) ===
千人あたり婚姻件数 × TFR : r = -0.0521 (p = 0.728) ← 原論文の報告値 r≒0.26
千人あたり婚姻件数 × 千人あたり出生数: r = +0.7047 (p = 3.2e-08) ← 原論文の報告値: 強い正の相関
→ TFRとの相関は弱く、出生数の方が婚姻件数と強く相関する、という原論文の判断を再現。
📊 この図の読み方
右パネル(出生数) 右肩上がりがはっきり。婚姻件数が多い県ほど千人あたり出生数も多い(r=+0.70)。原論文が「出生数を主に使う」と決めた根拠を再現。
左パネル(TFR) 点が散らばり、相関は弱い。原論文の報告値 r≒0.26(弱い正)に対し、SSDSE-B-2026(2018)の再計算ではほぼ無相関。いずれにせよ TFR との相関は弱い という結論は共通。
位置づけ 実再現 。報告値と符号・大きさが完全一致ではないが、「出生数の方が分析に適する」という主張は再現できている。
家庭的要因の2つ目は婚姻・離婚数 。原論文は「純結婚数(婚姻−離婚)」と出生数の相関係数を7年分たどり、結びつきが弱まっているかを調べた。この時系列は SSDSE-B から完全に再現できる。
① このコードの目的: 純結婚数(婚姻件数 − 離婚件数)と千人あたり出生数の相関係数を、2012〜2018年の各年で計算し、時系列で並べる。原論文の図[10](相関係数の年次推移)をそのまま再現する。
② 前後のつながり: 相関が年々どう変化するかを見て、「結婚と出生の結びつきが弱まりつつある」という原論文の主張を実データで検証する。収録データを使って2023年まで延長もしてみる。
📝 コード
📋 コピー 125
126
127
128
129
130
131
132
133
134
135
136 years_main = list ( range ( 2012 , 2019 )) # 原論文 図[10] と同じ 2012〜2018
years_ext = list ( range ( 2019 , 2024 )) # 発展: 収録データで直近まで延長
def corr_year ( year ):
dy = make_frame ( year )
return dy [ 'netmarr_p1000' ] . corr ( dy [ 'births_p1000' ])
r_main = [ corr_year ( y ) for y in years_main ]
r_ext = [ corr_year ( y ) for y in years_ext ]
print ( f " { '年度' : <6 }{ '相関係数(実再現)' : >16 } " )
for y , r in zip ( years_main , r_main ):
print ( f ' { y : <6 }{ r : >16.4f } ' )
print ( '→ 原論文の報告どおり 0.5前後の正の相関で推移し、全体として弱まる傾向を再現。' )
print ( '(発展)2019〜2023: ' + ', ' . join ( f ' { y } : { r : .3f } ' for y , r in zip ( years_ext , r_ext )))
④ 実行結果の読み取り: === 図2【実再現】純結婚数(千人)×出生数(千人) 相関係数の年次推移 ===
年度 相関係数(実再現)
2012 0.5236
2013 0.6095
2014 0.5428
2015 0.5886
2016 0.5712
2017 0.5140
2018 0.5205
→ 原論文の報告どおり 0.5前後の正の相関で推移し、全体として弱まる傾向を再現。
(発展)2019〜2023: 2019:0.477, 2020:0.570, 2021:0.532, 2022:0.463, 2023:0.494
📊 この図の読み方
0.5前後で推移 純結婚数が多い県は出生数も多い、という関係は毎年続いている(正の相関)。原論文の報告どおり。
ゆるやかな低下 年ごとに上下しつつ、全体としては弱まる傾向。結婚数によって出生数が左右されにくくなりつつある という原論文の考察を再現。
位置づけ 実再現 。原論文の報告値(0.5〜0.72の範囲で変動)とほぼ同じ水準・同じ傾向が得られている。
原論文は少子化の要因を家庭的(①教育費 ②婚姻/離婚数) と環境的(①保育施設数 ②育児時間) に分けた。相関の目安は |r|>0.7強い/0.4〜0.7相関あり/0.2〜0.4弱い/0.2未満ほとんどなし。
家庭① 教育費(詳細は図3)
私立中学校数が平均以上 の都道府県では、教育費とTFRに負の相関(報告値 r=−0.53) 。平均未満 の県では相関なし(報告値 r=−0.098)。私立中学が多い地域ほど教育費が高く、TFR が下がる傾向、というのが原論文の中心的発見。次章の図3で扱う。
家庭② 婚姻・離婚数(図2)
純結婚数と出生数の相関は 0.5前後で、全体としてゆるやかに低下(図2で実再現済み)。婚姻の多さと出生の結びつきが薄れてきていることを示す。
環境① 保育施設数
周囲の環境に左右される要因の1つ目。幼稚園と保育所等の数(千人あたり)が多い県ほど出生数も多いのか、実データで確かめる。
① このコードの目的: 幼稚園数と保育所等数の和(千人あたり)と、千人あたり出生数の相関を計算する。原論文の図[12](保育施設と出生数、報告値 r=0.025)を実データで確かめる。
② 前後のつながり: 環境的要因の1つ目「保育施設数」が出生数と関係するかを検証する。原論文と同じく外れ値の扱いで結果が変わる点にも注目する。
📝 コード
📋 コピー r_cc , p_cc = stats . pearsonr ( d [ 'childcare_p1000' ], d [ 'births_p1000' ])
d_ex = d [ ~ d [ 'Prefecture' ] . isin ( EXCLUDE )]
r_ccx , _ = stats . pearsonr ( d_ex [ 'childcare_p1000' ], d_ex [ 'births_p1000' ])
④ 実行結果の読み取り: === 補足【実再現】保育施設(幼稚園+保育所等)の和 × 出生数(原論文 図[12]) ===
全47都道府県 : r = +0.3154(弱い正)
外れ値2県(沖縄・秋田)を除外: r = +0.0891(ほとんど相関なし)
→ 原論文の報告値は r=0.025(相関なし)。外れ値を除くと同様に「相関なし」を再現。
原論文の報告値は r=0.025(ほとんど相関なし) 。本再現では全47県で弱い正(r=+0.32)だが、原論文が除外した外れ値を除くと r=+0.09 まで下がり、「ほとんど相関なし」という結論は再現 される。原論文は「保育施設の年齢層や定員を考慮していないため」と限界を述べている。
環境② 育児時間(詳細は図4)
1日の育児時間(男女合計)と千人あたり出生数は弱い正の相関(報告値 r≒0.528) 。内訳は女性が弱い正(r≒0.38)、男性はほとんど相関なし(r≒0.02)。育児時間は SSDSE-D(2016年)由来のため、図4では報告値を可視化する。
原論文の中心的な発見。全国の私立中学校数の平均(約16.6校)を基準に県を2グループに分け、教育費との関係を比べた。私立中学が多い=教育にお金がかかる地域では、教育費が高く TFR が低い、という主張である。
① このコードの目的: 原論文が学校基本調査の私立中学校数で県を「平均以上/未満」に分けて求めた相関係数(図[6]〜[9])を、符号・桁そのままに辞書へ転記する。ここは再計算ではなく報告値の転記 。
② 前後のつながり: 私立中学校数は本リポジトリの SSDSE-B には無いため実再現できない。転記した報告値を図3左に可視化する。
📝 コード
📋 コピー 168
169
170
171
172
173
174
175
176
177
178 REPORTED_EDU = {
'私立中学校数 × 教育費(平均未満)' : 0.079 , # 図[6] 相関なし
'TFR × 教育費(平均未満)' : - 0.098 , # 図[7] 相関なし
'私立中学校数 × 教育費(平均以上)' : 0.45 , # 図[8] 正の相関
'TFR × 教育費(平均以上)' : - 0.53 , # 図[9] 負の相関
}
for k , v in REPORTED_EDU . items ():
print ( f ' { k : <28 } r = { v : +.3f } ' )
print ( ' ※ 私立中学校数の平均は全国で約16.6校。平均以上の県では教育費が高く TFR は下がる。' )
print ()
④ 実行結果の読み取り: === 図3【報告値の可視化】私立中学校数で分けた教育費の相関(原論文 図[6]〜[9]) ===
私立中学校数 × 教育費(平均未満) r = +0.079
TFR × 教育費(平均未満) r = -0.098
私立中学校数 × 教育費(平均以上) r = +0.450
TFR × 教育費(平均以上) r = -0.530
※ 私立中学校数の平均は全国で約16.6校。平均以上の県では教育費が高く TFR は下がる。
① このコードの目的: 私立中学校数で分けずに、全47都道府県で「教育費(二人以上の世帯)」と TFR の相関を実際に計算する。原論文の「教育費が高いほど TFR が下がる」という向きを、収録データで確かめる。
② 前後のつながり: グループ分けはできないが、全県でも負の相関が出るかを見て、原論文の結論の頑健さを補強する。
📝 コード
📋 コピー r_eduT , p_eduT = stats . pearsonr ( d [ 'edu' ], d [ 'tfr' ])
r_eduB , p_eduB = stats . pearsonr ( d [ 'edu' ], d [ 'births_p1000' ])
print ( f '教育費 × TFR : r = { r_eduT : +.4f } (p = { p_eduT : .3f } )' )
print ( f '教育費 × 千人あたり出生数: r = { r_eduB : +.4f } (p = { p_eduB : .3f } )' )
print ( '→ 全県でも教育費とTFRは負の方向。原論文の「教育費が高いほどTFRが下がる」と整合。' )
④ 実行結果の読み取り: === 図3【実再現】教育費 × TFR を全47都道府県で再計算(2018年) ===
教育費 × TFR : r = -0.3446 (p = 0.018)
教育費 × 千人あたり出生数: r = +0.0640 (p = 0.669)
→ 全県でも教育費とTFRは負の方向。原論文の「教育費が高いほどTFRが下がる」と整合。
📊 この図の読み方
左・平均以上のグループ 私立中学校数×教育費が +0.45、TFR×教育費が −0.53(いずれも報告値)。私立中学が多い→教育費が高い→TFR が下がる、という連鎖。
左・平均未満のグループ どちらもほぼ0(+0.079/−0.098)。私立中学が少ない県では教育費も TFR もあまり動かない。
右・実再現 グループ分けせず全県で見ても、教育費と TFR は負の相関(r=−0.34) 。原論文の「教育費が高いほど TFR が低い」という向きが収録データでも確認できる。
位置づけ 左は報告値の可視化 (私立中学校数は SSDSE-B に無い)、右は実再現 。ラベルを分けて示している。
環境的要因の2つ目は育児時間 。原論文は1日の育児時間と出生数の相関を、男女合計・女性・男性の3通りで調べた。育児時間は SSDSE-D(2016年)のデータで、本ページでは報告値を可視化する。
① このコードの目的: 原論文が SSDSE-D(2016年 育児時間)で求めた「育児時間×千人あたり出生数」の相関係数(図[14]〜[16])を転記する。再計算ではなく報告値の転記 。
② 前後のつながり: 育児時間は本リポジトリの SSDSE-B には無いため実再現できない。転記した3つの報告値を図4に可視化する。
📝 コード
📋 コピー REPORTED_CARE = { '育児時間(男女合計)' : 0.528 , '育児時間(女性)' : 0.38 , '育児時間(男性)' : 0.02 }
for k , v in REPORTED_CARE . items ():
print ( f ' { k : <16 } r = { v : +.3f } ' )
print ( ' ※ 男女合計は弱い正の相関。内訳は女性が弱い正・男性はほとんど相関なし。' )
print ( ' → 男女間の育児時間の格差是正が課題、という原論文の主張の根拠。' )
④ 実行結果の読み取り: === 図4【報告値の可視化】育児時間 × 千人あたり出生数(原論文 図[14]〜[16]) ===
育児時間(男女合計) r = +0.528
育児時間(女性) r = +0.380
育児時間(男性) r = +0.020
※ 男女合計は弱い正の相関。内訳は女性が弱い正・男性はほとんど相関なし。
→ 男女間の育児時間の格差是正が課題、という原論文の主張の根拠。
📊 この図の読み方
男女合計 弱い正の相関(r≒0.528)。育児にかける時間が長い県ほど出生数がやや多い。
女性 vs 男性 女性は弱い正(r≒0.38)だが、男性はほとんど相関なし(r≒0.02)。育児時間の相関は主に女性側で生じている。
原論文の解釈 女性の育児時間の方が男性より長いことも踏まえ、男女間の育児時間の格差是正 が課題だと結論づけている。
位置づけ 報告値の可視化 。数値は原論文の報告値で、本ページで新たに計算したものではない。
結果の解釈(原論文 5. 結論)
家庭的な要因
教育費: 私立中学校数が平均以上の都道府県では、私立中学が多いほど1世帯あたりの教育費が高くなり、女性が産む子供の数(TFR)が減少する(報告値:私立中×教育費 +0.45、TFR×教育費 −0.53)。平均未満の県ではこの関係は見られない。よって教育費と少子化には少なからず関係があり、私立学校が多い地域ほど顕著 だと結論づけている。婚姻・離婚数: 純結婚数と出生数の相関は弱まりつつあり、婚姻数が出生数を左右しにくくなっている。
環境的な要因
保育施設数: 幼稚園・保育所等の数と出生数には、ほとんど相関が見られなかった(報告値 r=0.025)。保育施設の種別で応えるべきニーズが異なるため、と考察している。育児時間: 育児時間と出生数には正の相関があり、特に女性側に相関が見られた。よって男女間の育児時間の違いの是正 が課題である。
原論文の結論 子供一人にかける教育費の額を見直せば、家計的にも余裕が出て子供を更に産みやすくなる可能性がある。また、男性の育児参加を進め、男女の育児時間の格差を是正することが少子化改善の課題である。
審査会コメント(原論文より) 少子化というわが国の重要な課題にデータで解決策にアプローチする点は評価できる。議論を積み上げた記述やデータの吟味もよくできている。因果関係と相関関係、擬似相関等については、より慎重な考察が必要 である。
まとめ
少子化という大きな問題を、教育費・婚姻/離婚・保育施設・育児時間という具体的な要因に分解し、都道府県データの相関で迫った研究。教育費が高い地域ほど出生率が低い 、婚姻と出生の結びつきは弱まりつつある 、育児時間は主に女性側で出生数と相関する 、という3点を軸に、教育費の見直しと男女の育児格差是正を提案している。
この研究の限界(原論文) 保育施設については種別・年齢層・定員を考慮できていない。また根本原因の対策を考えるには、まだ分析に必要な十分なデータや情報が得られていない。相関の発見にとどまり、因果や擬似相関の吟味は今後の課題。
この研究から学べること 人口規模の違いを「千人あたり」でならし、箱ひげ図で外れ値を除き、平均でグループ分けして比較する——公開統計だけで社会問題に迫る基本の型。そして「相関があっても因果ではない」という慎重な読み方。
データ・コードのダウンロード
このページの婚姻・出生・TFR・教育費の相関(図1・図2・図3右)は、以下から再現できます。
🐍 再現コード(.py)
📊 SSDSE-B-2026.csv
※ 私立中学校数で分けたグループ別相関(図3左)と育児時間との相関(図4)は、原論文の報告値を可視化したものです。私立中学校数(学校基本調査)と育児時間(SSDSE-D)は本リポジトリの SSDSE-B には収録されていないため、再計算ではありません。
⚠️ よくある誤解と注意点
この研究を読むとき・まねするときに陥りやすい誤解を整理する。
誤解1:「教育費を下げれば出生率が上がる、と断定できる」
教育費と TFR に負の相関(報告値 −0.53)があっても、教育費が原因で出生率が下がる とは限らない。都市度や所得など背後の要因が両方を動かす擬似相関 の可能性がある。審査会も「因果・擬似相関の慎重な考察が必要」と指摘している。
誤解2:「TFR と出生数は同じもの」
TFR は1人の女性が生涯に産む子供の数(世帯レベル)、出生数は社会全体の子供の数。原論文は婚姻件数との相関が強い「千人あたり出生数」を主軸に選んだ(図1)。目的に応じて指標を使い分ける必要がある。
誤解3:「外れ値は勝手に消してよい」
原論文は箱ひげ図 で沖縄・秋田を外れ値として除外した。除外は結果を大きく変えうる(保育施設の相関は全県 +0.32 → 除外後 +0.09)。なぜ除外するかを明示し、除外の有無で結論が変わらないか確認 することが大切。
誤解4:「相関が弱い=関係がまったくない」
保育施設の相関(報告値 0.025)はほぼゼロだが、原論文は「施設の種別・定員を考慮していないため」と留保している。データの粗さで相関が見えないだけの可能性もあり、「無関係」と即断しないこと。
📖 用語集(この記事に出てくる統計用語)
クリックすると各用語の詳しい解説ページに移動できます。
相関係数 2つの数量が「一緒に増減する強さと向き」を −1〜+1 で表す指標。本研究は|r|>0.7を強い相関、0.4〜0.7を相関、0.2未満をほとんど相関なしの目安とした。
散布図 2変数を点で描き、関係の形(右肩上がり/下がり)を目で確かめる図。相関係数とセットで使う。
箱ひげ図 データの四分位数を箱とひげで表す図。本研究では Q1−1.5IQR/Q3+1.5IQR を超える値を外れ値と判定し、出生数で沖縄・秋田を除外した。
擬似相関 背後の第3の要因のせいで、直接関係のない2変数に見かけの相関が生じること。審査会が「慎重な考察が必要」と挙げた論点。
SSDSE 独立行政法人統計センターが公開する教育用標準データセット。SSDSE-B は都道府県別の基礎データ、SSDSE-D は都道府県別の生活行動・生活時間データ。
合計特殊出生率(TFR) 15〜49歳の1人の女性が一生の間に生むとしたときの子どもの数。人口置換水準は 2.07。
📐 使っている手法をわかりやすく解説
この研究で使われている手法を、手を動かす順に説明する。
全体像
人口規模をならすため「千人あたり」に換算 → 箱ひげ図で外れ値を除外 → 散布図で目視 → 相関係数で数値化 → 平均でグループ分けして比較。身近な公開統計だけで多面的に迫るのが見どころ。
📊 「千人あたり」への換算(規模の標準化)
何をする 出生数や婚姻件数を総人口で割って1000倍し、人口規模の違う都道府県を公平に比べられるようにする。
なぜ必要 そのままの件数では人口の多い東京が常に大きく出てしまう。割合にして初めて「多い/少ない」を比較できる。
注意 分母(総人口)と分子の年がずれると誤差になる。本研究は同一年の SSDSE-B を使い年を揃えている。
📦 箱ひげ図 による外れ値の除外
何をする 四分位数から Q1−1.5IQR/Q3+1.5IQR の範囲外を外れ値とみなす。本研究は出生数で沖縄・秋田を除外。
なぜ必要 極端な値が相関係数や回帰直線を大きく歪めるのを防ぐため。
注意(統計センター資料より) 除外は恣意的になりやすい。理由を明示し、除外の有無で結論が変わらないか確かめる(本ページでは保育施設で全県/除外の両方を提示)。
🔗 相関 分析+グループ分け比較
何をする 2変数の相関係数を求め、さらに「平均以上/未満」でグループを分けて相関を比べる。
読み方 グループで相関が違えば、その条件(私立中学校数の多さ)が関係を生んでいる可能性を示唆する。
注意 相関は因果ではない。N=47と小さく外れ値に弱い。散布図での目視確認と、擬似相関の吟味をセットで行う。
🚀 発展の可能性(結果 X → 新仮説 Y → 課題 Z)
この研究の「相関は見つけたが因果は不明」という結論は、次の研究の出発点になる。
発展1:擬似相関を統制する
結果X 教育費が高い県ほど TFR が低い(報告値 −0.53)。だが都市部ほど教育費も高く出生率も低い。
新仮説Y 教育費と TFR の相関は「都市度・所得・人口密度」の交絡で説明できるのではないか。
課題Z SSDSE-B の人口密度・所得を統制した偏相関や重回帰で、教育費の効果が残るか確かめる。
発展2:保育の質を測り直す
結果X 保育施設の数と出生数はほとんど相関なし(報告値 0.025)。だが施設の定員・待機児童は考慮していない。
新仮説Y 「施設数」より「定員充足率」や「待機児童率」の方が出生数と関係するのではないか。
課題Z SSDSE-B の保育所等定員数・待機児童数を使い、質を反映した指標で相関を取り直す。
🎯 自分でやってみよう(5つのチャレンジ)
再現コードを少し変えるだけで試せる課題を、易しい順に用意した。
★☆☆☆☆ 難易度1
別の年で相関を計算する
YEAR = 2018 を 2023 に変えて、婚姻×出生数の相関が最新年でどう変わるか確かめよう。
★★☆☆☆ 難易度2
外れ値を除いて相関を比べる
図1の相関を、沖縄・秋田を除いた d_ex で計算し直し、外れ値の除去で相関がどう変わるか見よう。
★★★☆☆ 難易度3
教育費の高い/低い県ランキング
d.nlargest(5, 'edu') と d.nsmallest(5, 'edu') で教育費の上位・下位5県を出し、その TFR も並べて見よう。
★★★★☆ 難易度4
死亡数を使って自然増減を作る
A4200(死亡数)を読み込み、(出生数−死亡数)/総人口 で「自然増減率」を作り、婚姻件数との相関を調べよう。
★★★★★ 難易度5
擬似相関を偏相関で確かめる
総人口や人口密度を第3変数として、教育費×TFR の偏相関を pingouin.partial_corr などで計算し、交絡を除いても負の相関が残るか調べよう。
ヒント: 偏相関は「2変数それぞれを交絡変数で回帰した残差どうしの相関」。まずは総人口を統制して試す。
💼 この手法は実社会でこう使われている
「規模をならして相関を取り、条件でグループ分けして比べる」発想は、政策や現場でも広く使われている。
👶
少子化・子育て政策(EBPM)
出生率と教育費・保育・所得の関係を都道府県別に分析し、支援策の優先順位や効果検証に使う。
🏙️
自治体の地域分析
人口規模を千人あたりにそろえ、地域差の要因を洗い出す。外れ値の扱いや擬似相関の吟味が重要になる。
📊
社会調査・世論分析
「意識」や「行動」を割合指標にし、条件別グループで比較して背景要因を探る手法として定番。
🤔 よくある質問(読者からの想定Q&A)
この研究を読んで浮かびやすい疑問に答える。
Q. なぜ TFR ではなく「千人あたり出生数」を主に使うのですか?
A. 婚姻件数との相関が、TFR では弱い(報告値 r≒0.26/本再現ではほぼ無相関)のに対し、千人あたり出生数では強い(本再現 r=+0.70)ためです。社会全体の子供の数を見るには出生数が適していると原論文は判断しました(図1)。
Q. このページの図は原論文と同じ数値ですか?
A. 一部だけ実再現です。婚姻・出生・TFR・教育費の相関(図1・図2・図3右)は SSDSE-B から実際に計算した実データ(原論文と同じ2018年断面)。私立中学校数で分けたグループ別相関(図3左)と育児時間の相関(図4)は、SSDSE-B に無いデータのため原論文の報告値を可視化したものです。図注に二重に明記しています。
Q. 保育施設の相関が全県 +0.32、除外後 +0.09 と違うのはなぜ?
A. 原論文が箱ひげ図で外れ値とした県を除くかどうかの違いです。除外すると原論文の報告値 0.025(相関なし)に近づきます。外れ値の扱いで結果が変わることを示す好例で、除外の理由を明示する大切さが分かります。
Q. 教育費が高いと本当に子供が減るのですか?
A. 相関は見られますが、因果とは限りません。都市度や所得など背後の要因が両方に影響する擬似相関の可能性があり、審査会も慎重な考察を求めています。偏相関や重回帰で交絡を統制するのが次のステップです。
✅ 理解度チェック(4問)
この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。