論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
2018年度 統計データ分析コンペティション | 優秀賞(高校生の部)

SSDSEデータを活用した
全国学習状況調査結果との相関分析

⏱️ 推定読了時間: 約20分
宮本 雨月・金山 瑠依・門脇 俊樹(和歌山県立田辺工業高等学校) 高校生の部・優秀賞 全国学力・学習状況調査(報告値)+SSDSE由来の家庭・財政指標
🔬 ピアソン相関🔬 外れ値検定🔬 相関分析🔬 相関行列🏷 教育・学力
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

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

原論文が使ったデータ全国学力・学習状況調査・SSDSE-A
分析単位:都道府県
中核手法:相関分析・スミルノフ=グラブズ検定・無相関の検定
この教材が使うデータ
原論文(PDF)SSDSEデータを活用した全国学習状況調査結果との相関分析
優秀賞/宮本 雨月、金山 瑠依、門脇 俊樹(和歌山県立田辺工業高等学校)
✅ この教材でできること
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
⚠️ この教材ではできないこと(原論文との違い)
  • 原論文は SSDSE-A を使っているが、この教材は SSDSE-B を使っている(ただし原論文には種別が明記されておらず、本文からの推定。読むときは原論文で確かめてほしい)
🚀 原論文と同じ粒度で挑戦したい人へ

原論文と同じ粒度のデータは、この教材にも同梱しています。これを読み込めば、原論文と同じ細かさで分析をやり直せます(下の「🐍 ブラウザで動かす」でコードを書き換えて試せます)。ただし原論文が使った項目がすべて収録されているとは限りません。足りない項目は、上の「できないこと」に書いた出典から取ってくる必要があります。

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

📝 3行で分かる要約

目次

  1. 研究のテーマと目的
  2. 使用データと再現可能性の整理
  3. 分析の流れ:加工 → 外れ値検定 → 相関行列
  4. 図1:大家族世帯割合の県別ランキング(報告値)
  5. 図2:相関行列ヒートマップ(報告値データから再計算)
  6. 図3:大家族世帯割合×生活習慣(報告値データから再計算)
  7. 図4:離婚件数の県別ランキング(実SSDSE-B・実再現)
  8. 結果の解釈と考察
  9. まとめと今後の課題
  10. データ・コードのDL
  11. ⚠️ よくある誤解
  12. 📖 用語集
  13. 📐 手法ガイド
  14. 🚀 発展の可能性
  15. 🎯 自分でやってみよう
  16. 🤔 Q&A
  17. 🐍 ブラウザで動かす

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

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

このページで実SSDSEから実再現できるのは図4(離婚件数)だけです。コードの編集は不要です。図1〜図3は、原論文が使った学力データ・家庭構成・地方財政の各指標が現行SSDSEに収録されていないため、原論文 表4 の報告値を転記して可視化・再計算します。

1
データをダウンロードする 独立行政法人統計センターの SSDSE(教育用標準データセット)配布ページから、以下をダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県・時系列データ)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2018_H2_yushu.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く(図4で使用)
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2018_H2_yushu.py
図は html/figures/ に自動保存されます。図1〜図3は原論文 表4 の報告値から、図4は SSDSE-B の離婚件数(A9201・2023年)から実再現します。
研究のテーマと目的

毎年、文部科学省は「全国学力・学習状況調査(全国学力テスト)」を小6・中3を対象に実施し、正答率だけでなく学習への関心・意欲・態度などの質問紙結果も都道府県別に公表している。著者らは、学習への関心は本人だけでなく家庭環境や自治体の政策にも左右されると考えた。

そこで本研究は、学力の平均正答率にはあえて着目せず、小学生の「学習への関心等」に絞り、それが家庭の構成(大家族かどうか)や自治体の教育費・福祉支出とどう関係するかを都道府県単位で調べた。中学生より小学生の方が家庭の影響が大きいだろう、という仮説から小学校データを基準にしている。手法の中心は相関行列と、その色分け(ヒートマップ)である。

47都道府県
分析単位(報告値・表4)
11変数
学力7項目+SSDSE由来4指標
+0.5752
大家族世帯割合×生活習慣(報告値)
−0.6551
大家族世帯割合×民生費割合(報告値)
研究の問い 小学生の学習への関心・意欲は、家庭の構成(大家族世帯の多さ)や自治体の教育費・民生費の割合とどう相関しているのか。学力そのものではなく「関心」に着目する点が特徴。
分析のキモ:正答率ではなく「学習への関心」を見る 著者は点数(学力)ではなく、規範意識・自尊感情・生活習慣・学習習慣といった関心・態度のスコアに注目する。関心が高ければ意欲的に学び、いずれ学力向上につながる、という因果の入口を探る探索的な相関分析である。

高校生の部・優秀賞 全国学力・学習状況調査(報告値) 相関行列・ヒートマップ 外れ値検定(スミルノフ=グラブズ)

使用データと再現可能性の整理

本研究は2種類のデータを都道府県単位で結合している。学習への関心7項目は全国学力・学習状況調査(児童質問紙)、家庭・財政の4指標はSSDSE由来の加工データである。

主なデータと出典(原論文 2章・3章)

役割変数出典(調査)本ページでの扱い
被説明学習への関心等 7項目(国語・数学への関心、規範意識、自尊感情、言語活動・読解力、生活習慣、学習習慣)全国学力・学習状況調査 児童質問紙(小学校・都道府県別)報告値の可視化(SSDSE収録外)
説明大家族世帯割合・教育費割合・離婚件数割合・民生費割合2018年当時の市区町村版SSDSE(国勢調査の世帯構成・地方財政)報告値(現行SSDSEに列なし)
実再現できる離婚件数(A9201)SSDSE-B-2026(2023年)実再現
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):学習への関心7項目は全国学力・学習状況調査の値で SSDSE に収録が無い。また原論文の説明変数4指標は2018年当時の市区町村版SSDSE(国勢調査の世帯構成・地方財政)から算出されたもので、現行のSSDSE-A/B/C/Eには収録列が無い。したがって図1(大家族世帯割合ランキング)は原論文 表4 の報告値を転記して可視化する。
  • 報告値データからの再計算:図2の相関行列・図3の散布図は、原論文 表4 の報告値データから ピアソン相関再計算し、原論文 表6 と一致するか検証したもの。SSDSEからの再取得ではない。SSDSE由来の指標同士(大家族世帯割合×民生費割合など)は原論文が外れ値を除いていないため完全に一致する。学力変数を含むペアだけは、原論文が秋田県などをスミルノフ=グラブズ検定で除外したためわずかに差が出る(後述)。
  • 実再現できる部分:原論文の4指標のうち現行SSDSE-Bに実在する唯一の変数が離婚件数(A9201)。図4だけは実データで作る。ただし原論文の離婚件数割合は分母が「一般世帯数」(SSDSE未収録)で調査年も異なるため、数値は原論文と一致しない旨を図注に明記する。
  • 新しい数値の捏造はしない:報告値・再計算値・実再現値をラベルで分離する。GDP・県内総生産・高齢化率など SSDSE に無い列は使わない。

分析の流れ:データ加工 → 外れ値検定 → 相関行列

分析の流れ
データ結合
学力7項目+
SSDSE4指標
指標の加工
大家族/教育費/
離婚/民生費の割合
外れ値検定
スミルノフ=
グラブズ
相関行列
ピアソン
相関を算出
ヒートマップ
青=正・赤=負
で可視化

① SSDSE由来データを「割合」に加工する(原論文 3-1)

市区町村のSSDSEを都道府県別に集計し、次の4指標を作った。大家族世帯割合=(一般世帯数−核家族−単独)/一般世帯数×100、教育費割合=教育費/歳出決算総額×100、離婚件数割合=離婚件数/一般世帯数×100、民生費割合=民生費/歳出決算総額×100。実数のままだと人口規模に引っ張られるため、割合に直して県を横並びで比較できるようにしている。

② 外れ値を除く(スミルノフ=グラブズ検定)

相関は極端な1県に大きく歪められる。そこでスミルノフ=グラブズ検定(有意水準0.05)を、外れ値が無くなるまで各変数で繰り返した。学力側では秋田県(全国トップで突出)などが、離婚件数割合では沖縄県(0.66で突出)が除かれた。

③ 相関行列とヒートマップ(原論文 3-5・4)

ピアソンの積率相関係数で11変数の相関行列を作り、無相関の検定(有意水準0.05)で有意性を確認。値の大小をセルの色(青=正・赤=負)に置き換えたヒートマップで全体像を一望した。

相関は因果ではない 相関係数は「一緒に動く強さ」を示すだけで、大家族が関心を高める原因だとは言い切れない。地方ほど大家族が多く福祉支出も…といった共通要因(交絡)が背後にある可能性も残る。相関は仮説を立てる手がかりとして読むのが正しい。
1
図1:大家族世帯割合の県別ランキング(報告値)

まず、原論文が最重要視した説明変数「大家族世帯割合」が都道府県でどう分布するかを見る。この指標の元データ(国勢調査の世帯構成)は現行SSDSEに無いため、原論文 表4 の報告値を転記して可視化する(再計算ではない)。

やってみよう原論文 表4 の報告値データ(47都道府県×11変数)を読み込む【報告値】
  • ① このコードの目的:原論文 表4「各項目の集計数値データ一覧」を、学力7項目+SSDSE由来4指標の47県分そのまま転記して DataFrame にする。このブロックは数値を作り出さず、原論文の報告値を読み込むだけ。以降の図はすべてこの表を出発点にする。
  • ② 前後のつながり:分析の土台づくり。学力データはSSDSE収録外、4指標も現行SSDSE収録外なので、実データではなく原論文の報告値表を唯一の入力とすることを、ここで明示する。
📝 コード
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
# 原論文 表4「各項目の集計数値データ一覧【都道府県別】」を転記した報告値。
# 左7列=全国学力・学習状況調査の児童質問紙(学習への関心等、SSDSE未収録)、
# 右4列=原論文が SSDSE 由来データを加工した4指標(現行SSDSEに収録列なし)。
# いずれも「原論文の報告値」であり、このブロックで数値を作り出してはいない。
TABLE4 = """北海道,5.0,4.9,5.0,4.8,5.1,4.9,5.3,6.78,10.08,0.43,33.06
青森県,5.3,5.3,5.4,5.4,5.4,5.5,5.7,16.60,10.64,0.43,33.00
岩手県,5.4,5.3,5.4,5.1,5.5,5.5,5.6,18.35,7.82,0.38,20.18
宮城県,5.0,5.0,4.9,5.0,5.1,5.1,5.5,14.33,6.76,0.40,18.87
秋田県,6.2,6.1,5.8,6.0,6.1,5.6,6.6,20.13,9.58,0.36,29.15
山形県,5.4,5.0,5.4,5.3,5.3,5.3,5.7,24.66,11.97,0.39,28.17
福島県,5.3,5.1,5.0,4.8,5.1,5.2,5.5,17.98,9.20,0.45,39.71
茨城県,5.3,5.2,5.3,5.2,5.2,5.1,5.4,14.23,13.33,0.43,32.01
栃木県,5.5,5.4,5.4,5.3,5.4,5.5,5.5,14.50,11.49,0.45,32.05
群馬県,5.0,5.1,5.2,5.2,5.0,5.3,5.2,12.15,12.73,0.42,31.93
埼玉県,5.1,5.1,5.2,5.3,5.3,5.5,5.5,8.20,10.89,0.42,39.94
千葉県,4.8,4.7,4.9,4.9,4.7,4.9,4.7,8.66,12.64,0.41,36.76
東京都,4.9,5.0,4.6,4.9,5.0,4.9,4.6,4.86,12.74,0.35,49.37
神奈川県,5.0,5.0,4.7,4.8,4.8,4.8,4.6,6.11,9.22,0.40,39.92
新潟県,5.5,5.3,5.3,5.2,5.6,5.2,5.2,19.44,10.44,0.35,27.73
富山県,4.9,5.0,5.1,5.1,5.0,5.0,5.3,18.91,10.75,0.35,29.70
石川県,5.5,5.5,5.0,5.1,5.3,5.3,5.5,13.60,11.49,0.37,32.05
福井県,5.3,5.4,5.3,5.7,5.2,5.5,5.5,20.91,11.95,0.40,30.52
山梨県,5.4,5.4,5.4,5.3,5.4,5.4,5.3,12.69,10.81,0.41,29.67
長野県,5.1,4.9,4.9,5.0,5.0,5.4,4.6,15.17,11.26,0.40,28.11
岐阜県,5.2,5.0,5.4,5.1,5.2,5.2,5.3,16.11,11.71,0.41,31.21
静岡県,4.6,4.9,4.8,5.0,4.8,4.9,4.8,14.64,10.44,0.44,31.85
愛知県,4.7,4.8,4.9,4.8,4.7,4.8,4.6,9.59,10.83,0.41,36.54
三重県,4.9,5.0,5.1,4.9,4.9,4.9,4.9,11.96,9.53,0.41,33.05
滋賀県,4.6,4.5,4.7,4.9,4.6,4.9,4.9,12.78,13.51,0.41,34.53
京都府,4.8,4.8,5.0,4.9,4.9,4.8,4.9,7.67,9.93,0.367,38.31
大阪府,4.6,4.8,4.6,4.7,4.5,4.6,4.3,6.38,9.81,0.441,45.02
兵庫県,4.8,4.8,5.0,5.0,4.8,4.9,4.7,8.04,10.86,0.40,36.92
奈良県,4.7,4.7,5.0,4.8,4.7,4.8,4.5,10.39,10.94,0.41,34.91
和歌山県,5.0,5.1,5.2,5.0,4.9,5.1,4.8,10.37,8.64,0.45,33.91
鳥取県,5.0,4.8,5.0,4.8,4.9,5.1,5.1,17.40,9.35,0.43,31.62
島根県,4.9,4.8,5.2,5.0,5.0,5.1,5.0,17.97,10.53,0.36,27.49
岡山県,5.1,5.1,5.1,5.1,5.0,5.0,5.2,11.89,10.75,0.42,34.48
広島県,5.2,5.2,5.3,5.4,5.2,5.2,5.3,8.00,10.23,0.39,33.43
山口県,5.2,5.1,5.3,5.1,5.3,5.1,5.2,8.81,10.95,0.36,32.64
徳島県,4.8,5.1,5.2,5.0,4.7,4.9,5.1,12.92,10.86,0.39,34.55
香川県,4.7,4.8,4.8,4.7,4.6,4.8,5.1,11.24,13.77,0.41,34.58
愛媛県,5.1,5.1,5.3,5.2,5.1,4.9,5.3,9.18,11.12,0.38,35.55
高知県,5.6,5.4,5.3,5.2,5.4,5.2,5.2,8.65,8.29,0.39,33.68
福岡県,4.8,4.8,4.8,4.9,4.7,4.6,4.6,8.13,10.33,0.45,36.61
佐賀県,4.9,5.0,5.1,5.0,4.8,5.0,4.7,17.31,10.15,0.46,32.80
長崎県,4.9,5.1,5.0,4.8,4.9,5.1,4.8,10.99,8.10,0.39,34.23
熊本県,5.0,4.9,4.9,4.8,5.0,4.9,4.8,12.96,9.22,0.42,36.41
大分県,5.0,4.9,4.8,4.9,5.0,4.7,4.7,10.41,10.32,0.41,35.67
宮崎県,5.3,5.4,5.3,5.3,5.3,5.2,5.5,8.58,8.33,0.48,35.88
鹿児島県,5.0,5.0,5.1,4.9,5.0,4.8,5.1,5.79,9.11,0.40,34.85
沖縄県,5.0,5.2,4.5,4.9,4.9,4.6,5.1,9.07,11.76,0.66,38.71"""

COLS = ['都道府県', '国語への関心等', '数学への関心等', '規範意識', '自尊感情',
        '言語活動・読解力', '生活習慣', '学習習慣',
        '大家族世帯割合', '教育費割合', '離婚件数割合', '民生費割合']
VARS = COLS[1:]
df = pd.read_csv(StringIO(TABLE4), header=None, names=COLS)
▼ 実行結果
=== [1] 原論文 表4(報告値)の読み込み ===
都道府県数: 47  変数: 11 項目
学習状況(SSDSE未収録・報告値): ['国語への関心等', '数学への関心等', '規範意識', '自尊感情', '言語活動・読解力', '生活習慣', '学習習慣']
SSDSE由来の加工4指標(現行SSDSE未収録・報告値): ['大家族世帯割合', '教育費割合', '離婚件数割合', '民生費割合']

先頭5県:
都道府県  国語への関心等  数学への関心等  規範意識  自尊感情  言語活動・読解力  生活習慣  学習習慣  大家族世帯割合  教育費割合  離婚件数割合  民生費割合
 北海道      5.0      4.9   5.0   4.8       5.1   4.9   5.3     6.78  10.08    0.43  33.06
 青森県      5.3      5.3   5.4   5.4       5.4   5.5   5.7    16.60  10.64    0.43  33.00
 岩手県      5.4      5.3   5.4   5.1       5.5   5.5   5.6    18.35   7.82    0.38  20.18
 宮城県      5.0      5.0   4.9   5.0       5.1   5.1   5.5    14.33   6.76    0.40  18.87
 秋田県      6.2      6.1   5.8   6.0       6.1   5.6   6.6    20.13   9.58    0.36  29.15
  • ④ 実行結果の読み取り:① 47都道府県すべてが読み込まれ、11変数(学力7+SSDSE4)がそろっている。② 先頭の秋田県は国語6.2・数学6.1など全項目で突出しており、後で外れ値として扱われる県だと分かる。③ この表が図1〜図3すべての入力になる(報告値)。
やってみよう大家族世帯割合の報告値を県別ランキングにする【報告値の可視化・図1】
  • ① このコードの目的:大家族世帯割合の報告値を昇順に並べ、全国平均より高い県をオレンジ、低い県を青で塗り分ける。元の世帯構成データが現行SSDSEに無いため、これは再計算ではなく報告値の可視化である。
  • ② 前後のつながり:図1で「大家族世帯割合はどこで高いのか」を先に押さえる。上位に東北・北陸が並ぶことを確認しておくと、次の図2・図3でそれが学習への関心とどう相関するかを読みやすくなる。
📝 コード
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# 原論文が最重要視した「大家族世帯割合」の報告値(表4)を県別に並べる。
# 大家族世帯割合=(一般世帯数−核家族−単独)/一般世帯数×100。分母・分子の元データ
# (国勢調査の世帯構成)は現行SSDSEに無いため、これは再計算ではなく報告値の可視化。
rank = df[['都道府県', '大家族世帯割合']].sort_values('大家族世帯割合')
mean_val = rank['大家族世帯割合'].mean()
short = rank['都道府県'].str.replace('県', '').str.replace('府', '').str.replace('都', '').str.replace('北海道', '北海道')
colors = ['#E65100' if v >= mean_val else '#1565C0' for v in rank['大家族世帯割合']]

fig1, ax1 = plt.subplots(figsize=(10, 12))
ax1.barh(short, rank['大家族世帯割合'], color=colors, alpha=0.85, edgecolor='white', linewidth=0.4)
ax1.axvline(mean_val, color='black', linewidth=1.8, linestyle='--',
            label=f'全国平均 {mean_val:.1f}%')
for y, v in enumerate(rank['大家族世帯割合']):
    ax1.text(v + 0.2, y, f'{v:.1f}', va='center', fontsize=8)
ax1.set_title('図1 大家族世帯割合の都道府県別ランキング\n【原論文 表4 の報告値の可視化(再計算ではない)】',
              fontsize=13, fontweight='bold', pad=12)
ax1.set_xlabel('大家族世帯割合(%)', fontsize=11)
ax1.set_xlim(0, rank['大家族世帯割合'].max() * 1.15)
ax1.legend(loc='lower right', fontsize=10)
ax1.grid(axis='x', alpha=0.3)
plt.tight_layout()
fig1.savefig(os.path.join(FIG_DIR, '2018_H2_fig1.png'), bbox_inches='tight')
plt.close(fig1)
▼ 実行結果
=== [2] 図1: 大家族世帯割合の県別ランキング(報告値の可視化) ===
全国平均: 12.46%
最高: 山形県 24.66%
最低: 東京都 4.86%
上位5県: 山形県(24.7), 福井県(20.9), 秋田県(20.1), 新潟県(19.4), 富山県(18.9)
saved: html/figures/2018_H2_fig1.png
  • ④ 実行結果の読み取り:① 大家族世帯割合が高いのは山形(24.7%)・福井(20.9%)・秋田(20.1%)・新潟・富山東北・北陸に集中。② 低いのは東京(4.9%)・神奈川・大阪など大都市圏。③ 三世代同居が多い地方ほど大家族が多い、という常識と整合し、報告値の妥当性を裏づける。
大家族世帯割合の都道府県別ランキング(報告値の可視化)
図1:大家族世帯割合の都道府県別ランキング。報告値の可視化(再計算ではない)(原論文 表4)。オレンジ=全国平均以上、青=平均未満。元の世帯構成データ(国勢調査)は現行SSDSEに収録列が無い。
📊 この図の読み方
棒の長さ
大家族世帯割合(%)。長いほど三世代同居などの大家族が多い。
上位=地方
山形・福井・秋田・新潟・富山。下位は東京・神奈川など大都市。
位置づけ
報告値の可視化。元データが現行SSDSEに無いため実再計算はできない。
2
図2:相関行列ヒートマップ(報告値データから再計算)

本研究の中心成果が相関行列のヒートマップ(原論文 表7)だ。ここでは原論文 表4 の報告値データからピアソン相関再計算し、原論文 表6 と一致するかを検証する。SSDSEからの再取得ではない。

やってみよう報告値データから相関行列を再計算し、ヒートマップにする【再計算・図2】
  • ① このコードの目的:原論文 表4 の報告値から11×11の相関行列df.corr() で再計算し、青(正)〜赤(負)で色分けしたヒートマップを描く。あわせて再計算値と原論文 表6 の報告値を並べて照合する。
  • ② 前後のつながり:図1で見た大家族世帯割合が、学習への関心7項目とどう関係するかを一望する部分。原論文の表6を単に転記するのではなく、報告データから自分で相関を出し直して一致を確かめることで、報告値の信頼性を検証する。
📝 コード
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# 原論文 表4 の報告値データから Pearson 相関行列を「再計算」し、原論文 表6・表7
# (ヒートマップ)と一致するか検証する。SSDSEからの再取得ではない点に注意。
# 原論文はスミルノフ=グラブズ検定で変数ごとに外れ値を除いてから相関を出しているが、
# ここでは全47県(外れ値除去なし)で計算し、差の出どころを可視化する。
corr = df[VARS].corr(method='pearson')

fig2, ax2 = plt.subplots(figsize=(11, 9))
im = ax2.imshow(corr.values, cmap='RdBu_r', vmin=-1, vmax=1, aspect='auto')
ax2.set_xticks(range(len(VARS)))
ax2.set_yticks(range(len(VARS)))
ax2.set_xticklabels(VARS, rotation=55, ha='right', fontsize=9)
ax2.set_yticklabels(VARS, fontsize=9)
for i in range(len(VARS)):
    for j in range(len(VARS)):
        v = corr.values[i, j]
        ax2.text(j, i, f'{v:.2f}', ha='center', va='center',
                 fontsize=7.5, color='white' if abs(v) > 0.55 else '#222')
cb = fig2.colorbar(im, ax=ax2, fraction=0.046, pad=0.04)
cb.set_label('ピアソン相関係数', fontsize=10)
ax2.set_title('図2 相関行列ヒートマップ(全47県・外れ値除去なし)\n'
              '【原論文 表4 の報告値データからの再計算(SSDSE再取得ではない)】',
              fontsize=12, fontweight='bold', pad=12)
plt.tight_layout()
fig2.savefig(os.path.join(FIG_DIR, '2018_H2_fig2.png'), bbox_inches='tight')
plt.close(fig2)
▼ 実行結果
=== [3] 図2: 相関行列の再計算とヒートマップ(報告値データから再計算) ===
再計算した相関 vs 原論文 表6 の報告値:
  大家族世帯割合×生活習慣: 再計算=+0.5752 / 報告値=+0.5752  → 一致
  大家族世帯割合×民生費割合: 再計算=-0.6551 / 報告値=-0.6551  → 一致
  大家族世帯割合×規範意識: 再計算=+0.4856 / 報告値=+0.4856  → 一致
  民生費割合×規範意識: 再計算=-0.5193 / 報告値=-0.5193  → 一致
  国語への関心等×言語活動・読解力: 再計算=+0.9449 / 報告値=+0.9241  → 差あり(原論文は外れ値除去)
  大家族世帯割合×学習習慣: 再計算=+0.5220 / 報告値=+0.4758  → 差あり(原論文は外れ値除去)
  教育費割合×国語への関心等: 再計算=-0.1673 / 報告値=-0.1389  → 差あり(原論文は外れ値除去)
saved: html/figures/2018_H2_fig2.png
  • ④ 実行結果の読み取り:① SSDSE由来の指標同士は原論文が外れ値を除いていないため完全一致:大家族×民生費=−0.6551、大家族×生活習慣=+0.5752、民生費×規範意識=−0.5193(すべて報告値と小数4桁まで一致)。② 一方、学力変数を含むペアは差あり:国語×言語活動は再計算+0.9449に対し報告+0.9241。これは原論文がスミルノフ=グラブズ検定で秋田県などを除いてから相関を出しているため。③ つまり原論文の相関行列は「外れ値除去後」の値であり、除かずに全47県で計算すると学力ペアがやや強めに出る、という再現上の注意点が見える。
相関行列ヒートマップ(報告値データから再計算)
図2:11変数の相関行列ヒートマップ(全47県・外れ値除去なし)。原論文 表4 の報告値データからの再計算(SSDSE再取得ではない)。青=正の相関・赤=負の相関。SSDSE指標同士は原論文 表6 と完全一致、学力ペアのみ外れ値除去の有無で微差。
📊 この図の読み方
色の意味
青が濃いほど強い正の相関、赤が濃いほど強い負の相関。対角は自分自身なので1.00。
注目のセル
大家族世帯割合×民生費割合の濃い赤(−0.66)、大家族×生活習慣の青(+0.58)。教育費割合の行・列はほぼ白(無相関)。
位置づけ
報告値データからの再計算。SSDSE指標同士は原論文と一致、学力ペアは原論文の外れ値除去のぶんだけ差が出る。
3
図3:大家族世帯割合×生活習慣(報告値データから再計算)

原論文の核心的な発見は「大家族世帯割合が高い県ほど、規範意識・生活習慣・学習習慣が高い」だった。その代表として大家族世帯割合 × 生活習慣を散布図で確かめる。生活習慣は原論文で外れ値なしのため、報告値データから再計算した相関は表6の値と一致するはずだ。

やってみよう大家族世帯割合と生活習慣の関係を散布図と回帰直線で確かめる【再計算・図3】
  • ① このコードの目的:報告値データから大家族世帯割合(x)と生活習慣スコア(y)の47点を散布図にし、回帰直線相関係数を計算する。生活習慣は外れ値なしなので、再計算した r は原論文 表6 の 0.5752 と一致するはず。
  • ② 前後のつながり:図2のヒートマップで見えた「大家族×生活習慣=正の相関」を、1つ1つの県の位置として具体的に見る部分。相関係数という1つの数字が、実際の点の散らばりとしてどう表れるかを確かめる。
📝 コード
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# 原論文の中心的な発見「大家族世帯割合が高い県は生活習慣等が高い」を散布図で確かめる。
# 生活習慣は外れ値なし(原論文3.3)なので、報告値データから再計算した相関は原論文
# 表6 の 0.5752 と一致するはず。x=大家族世帯割合, y=生活習慣(学習状況の報告値)。
x = df['大家族世帯割合'].values
y = df['生活習慣'].values
slope, intercept, r, p, se = stats.linregress(x, y)

fig3, ax3 = plt.subplots(figsize=(10, 7.5))
ax3.scatter(x, y, s=70, color='#2E7D32', alpha=0.8, edgecolor='white', zorder=3)
for xi, yi, nm in zip(x, y, short):
    ax3.annotate(nm, (xi, yi), xytext=(3, 3), textcoords='offset points',
                 fontsize=7, color='#444')
xl = np.linspace(x.min(), x.max(), 100)
ax3.plot(xl, intercept + slope * xl, color='crimson', linewidth=2.2, zorder=4,
         label=f'回帰直線  r={r:.4f}(原論文報告値 0.5752)')
ax3.set_title('図3 大家族世帯割合 × 生活習慣(学習状況)\n'
              '【原論文 表4 の報告値データからの再計算:r=0.5752 を再現】',
              fontsize=12, fontweight='bold', pad=12)
ax3.set_xlabel('大家族世帯割合(%)=報告値', fontsize=11)
ax3.set_ylabel('生活習慣スコア=学習状況の報告値(SSDSE未収録)', fontsize=11)
ax3.legend(loc='upper left', fontsize=10)
ax3.grid(alpha=0.3)
plt.tight_layout()
fig3.savefig(os.path.join(FIG_DIR, '2018_H2_fig3.png'), bbox_inches='tight')
plt.close(fig3)
▼ 実行結果
=== [4] 図3: 大家族世帯割合 × 生活習慣 散布図(報告値データから再計算) ===
大家族世帯割合 × 生活習慣: r=0.5752, p=0.000023
原論文 表6 の報告値 = 0.5752(生活習慣は外れ値なしのため一致)
saved: html/figures/2018_H2_fig3.png
  • ④ 実行結果の読み取り:① 再計算した相関はr=0.5752で、原論文 表6 の報告値と小数4桁まで一致(生活習慣は外れ値なしのため)。② 右上に山形・秋田・新潟(大家族が多く生活習慣も高い)、左下に大阪・東京(大家族が少なく生活習慣も低め)が並ぶ。③ 「正の相関」という原論文の主張は報告データ上でも確かに再現され、点は右上がりに並ぶが、直線からのばらつきもあり相関は中程度である。
大家族世帯割合×生活習慣の散布図(報告値データから再計算)
図3:大家族世帯割合 × 生活習慣(学習状況)の散布図(47都道府県)。原論文 表4 の報告値データからの再計算:r=0.5752 を再現。縦軸の生活習慣は全国学力・学習状況調査の報告値(SSDSE未収録)。回帰直線は可視化の補助。
📊 この図の読み方
右上がりの傾き
大家族世帯割合が高い県ほど生活習慣スコアが高い、という中程度の正の相関(r=0.5752)。
県の位置
右上に東北・北陸、左下に大都市。図1のランキングと顔ぶれが対応する。
位置づけ
報告値データからの再計算。r=0.5752は原論文 表6 と一致(生活習慣は外れ値なし)。
4
図4:離婚件数の県別ランキング(実SSDSE-B・実再現)

最後に、唯一 実データで再現できる部分を見る。原論文の4指標のうち、現行 SSDSE-B に実在する変数は離婚件数(A9201)だけだ。ここは実SSDSEから県別ランキングを作る。ただし原論文の離婚件数割合とは分母(一般世帯数 vs 総人口)も調査年も異なるため、数値そのものは一致しない。

やってみようSSDSE-B(2023年)の離婚件数を対人口比で県別に並べる【実再現・図4】
  • ① このコードの目的:SSDSE-B-2026 を cp932 で読み、都道府県行のみを抽出、年度==2023 に絞って離婚件数(A9201)を総人口で割った対人口比(人口千対)でランキングする。原論文が使った4指標のうち、現行SSDSEに残る唯一の変数を実データで再現する。
  • ② 前後のつながり:図1〜図3は報告値ベースだったのに対し、この図だけが今のSSDSEから自分で計算した実データ。原論文の指標がどれだけ現行データで復元できるか(=再現可能性の限界)を体感する締めくくり。
📝 コード
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
# 原論文の4指標のうち、現行 SSDSE-B-2026 に実在する唯一の変数が「離婚件数(A9201)」。
# ここだけは実データで再現する。データ仕様: cp932・先頭列=年度・2行目に単位行。
# 2023年を抽出し、離婚件数を総人口で割った対人口比(人口千対)で県別に並べる。
# 【注意】原論文の離婚件数割合は分母が「一般世帯数」(SSDSE未収録)で年も異なるため、
# 数値そのものは原論文と一致しない。あくまで現行SSDSEでの独立した実再現である。
dfb = pd.read_csv(DATA_B, encoding='cp932', header=1)
dfb = dfb[dfb['地域コード'].str.match(r'^R\d{2}000$', na=False)].copy()  # 都道府県行のみ
dfb['年度'] = dfb['年度'].astype(int)
d23 = dfb[dfb['年度'] == 2023].copy()
d23['離婚件数対人口千'] = d23['離婚件数'] / d23['総人口'] * 1000
d23 = d23.sort_values('離婚件数対人口千')
short2 = d23['都道府県'].str.replace('県', '').str.replace('府', '').str.replace('都', '')
mean2 = d23['離婚件数対人口千'].mean()
colors2 = ['#E65100' if v >= mean2 else '#1565C0' for v in d23['離婚件数対人口千']]

fig4, ax4 = plt.subplots(figsize=(10, 12))
ax4.barh(short2, d23['離婚件数対人口千'], color=colors2, alpha=0.85, edgecolor='white', linewidth=0.4)
ax4.axvline(mean2, color='black', linewidth=1.8, linestyle='--', label=f'全国平均 {mean2:.2f}')
for yy, vv in enumerate(d23['離婚件数対人口千']):
    ax4.text(vv + 0.01, yy, f'{vv:.2f}', va='center', fontsize=8)
ax4.set_title('図4 離婚件数の対人口比(人口千対)都道府県別ランキング\n'
              '【実SSDSE-B-2026・2023年・A9201 からの実再現(分母・年は原論文と異なる)】',
              fontsize=12, fontweight='bold', pad=12)
ax4.set_xlabel('離婚件数 ÷ 総人口 × 1000(人口千対)', fontsize=11)
ax4.set_xlim(0, d23['離婚件数対人口千'].max() * 1.15)
ax4.legend(loc='lower right', fontsize=10)
ax4.grid(axis='x', alpha=0.3)
plt.tight_layout()
fig4.savefig(os.path.join(FIG_DIR, '2018_H2_fig4.png'), bbox_inches='tight')
plt.close(fig4)
▼ 実行結果
=== [5] 図4: 離婚件数の対人口比 県別ランキング(実SSDSE-B 2023・実再現) ===
対象年: 2023  都道府県数: 47
最高: 沖縄県 2.16(人口千対)
最低: 富山県 1.12(人口千対)
原論文でも沖縄県は離婚件数割合0.66で外れ値。現行データでも沖縄が最上位で傾向は整合。
saved: html/figures/2018_H2_fig4.png
  • ④ 実行結果の読み取り:① 離婚件数の対人口比が最も高いのは沖縄県(2.16)、次いで宮崎・北海道・福岡。最も低いのは富山・新潟など。② 原論文の表4でも沖縄県は離婚件数割合0.66で唯一の外れ値だった。分母も年も違うのに沖縄が突出する傾向は現行データでも一致しており、この点は実データで裏づけられる。③ ただし原論文では離婚件数割合は学習項目とほぼ無相関(有意でない)と結論されており、この変数は学習への関心の説明力が弱い点に注意。
離婚件数の対人口比の都道府県別ランキング(実SSDSE-B・2023)
図4:離婚件数の対人口比(人口千対)都道府県別ランキング。実SSDSE-B-2026・2023年・A9201からの実再現。オレンジ=全国平均以上。原論文の離婚件数割合は分母が一般世帯数で調査年も異なるため数値は原論文と一致しない。沖縄が最上位である傾向は原論文(表4で沖縄が外れ値)と整合。
📊 この図の読み方
棒の長さ
離婚件数÷総人口×1000。長いほど人口あたりの離婚が多い。
沖縄が突出
原論文でも沖縄は離婚件数割合の外れ値。分母・年が違っても傾向は一致。
位置づけ
実再現(実SSDSE-B)。ただし原論文の指標とは定義が異なる別物である点に注意。

結果の解釈と考察

著者は相関行列(原論文 表6)から、次の3つの発見を読み解いた。原論文5章の考察である。

① 大家族世帯は学習への関心に良い影響(原論文 5章)

大家族世帯割合は規範意識・言語活動読解力・生活習慣・学習習慣と正の相関を示し、これら4項目はさらに国語・数学への関心とも正の相関だった。著者は「両親だけでなく祖父母等との日常的な関わりが、規範意識や生活習慣・学習習慣を高め、それが学習への関心を育む」と考察する。関心が高まれば意欲的に学び、学力向上にもつながりうる、という見立てだ。

② 教育費の割合は学習への関心とは無関係(原論文 5章)

各自治体の歳出に占める教育費割合はどの学習項目とも有意な相関を示さなかった(図2でも教育費の行・列はほぼ白)。著者は「教育費への支出を増やしても、学習への関心に及ぼす影響は限定的なのではないか」と述べる。お金のかけ方だけでは関心は動かない、という示唆である。

③ 民生費の割合が高い県ほど学習への関心が低い(原論文 5章)

歳出に占める民生費割合は、規範意識・自尊感情・言語活動・生活習慣・学習習慣と負の相関(規範意識で−0.5193)。民生費が多い=福祉や児童手当など公的支援を要する家庭が多い自治体と考えられ、そうした地域では規範意識や学習習慣が確立されにくく学習への関心も薄くなりやすい、と著者は解釈した。

より正確な分析のために(補足) これらは相関であって因果ではない。大家族が多い地方は民生費割合が低く(本ページ再計算でも大家族×民生費=−0.6551)、両者は強く連動している。つまり「大家族が関心を高める」のか「地方という共通環境が大家族・低民生費・高い生活習慣を同時に生む」のかは、相関だけでは区別できない(交絡の可能性)。原論文が回帰係数やt値・p値を報告せず相関係数と有意判定のみで論じている点も踏まえ、結論は「示唆」の域として読むのが正確である。また相関行列は外れ値除去後の値であり、除かないと学力ペアの相関はやや強めに出る(図2)。

まとめと今後の課題

本研究は、小学生の学習への関心は家庭の構成や自治体の支出とどう相関するかという問いに、相関行列とヒートマップで迫った。結果、大家族世帯割合は規範意識・生活習慣・学習習慣などと正の相関(生活習慣 r=+0.5752)、民生費割合は多くの学習項目と負の相関(規範意識 r=−0.5193)、教育費割合はどの項目とも無相関、という3点を報告した。著者は「大家族世帯で生活しやすい環境づくりが、子どもの学習状況に良い影響を与え、学習への関心を通じて学力向上につながる」と結論した。本ページでは、学力・4指標は報告値として可視化・再計算し、実SSDSEに残る離婚件数だけを実再現して切り分けた。

この研究の限界 ①相関は因果ではなく、大家族・低民生費・地方という要因が強く連動する(交絡の可能性)。②原論文は回帰係数・t値・p値を報告しておらず、相関係数と有意判定のみ。③学習への関心スコアは質問紙の自己評価で、県間の差は小さい。④審査講評も「先行研究との比較があればより優れた論文になる」と指摘している。⑤再現面では、学力データも4指標も現行SSDSEに無く、実SSDSEで再現できるのは離婚件数のみ。
この研究から学べること 別々の公的統計を都道府県で結合し、相関行列とヒートマップで多変数の関係を一望する発想。外れ値検定で頑健性に配慮する姿勢。そして、報告値の可視化・報告データからの再計算・実データの実再現を切り分ける誠実さ。データ結合の工夫とヒートマップによる可視化が評価され、高校生の部・優秀賞に選ばれた。

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

このページの図は、以下から再現できます。

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

※ 図4(離婚件数の対人口比)はSSDSE-B-2026から算出した実再現です(2023年)。図1(大家族世帯割合ランキング)は、原論文の説明変数が2018年当時の市区町村版SSDSE(国勢調査の世帯構成・地方財政)由来で現行SSDSEに列が無いため、原論文 表4 の報告値を転記して可視化したものです。図2・図3の相関は、原論文 表4 の報告値データから再計算した値で、SSDSEからの再取得ではありません(新たな数値の捏造はしていません)。原論文は回帰係数・t値・p値を報告していません(相関係数と有意判定のみ)。

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

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

誤解1:「大家族世帯割合が高い=大家族が学習への関心を高める原因だ」
相関は因果ではない。大家族が多い地方は民生費割合が低く生活習慣も高い、というように複数の指標が地方という共通環境で連動している(交絡)。大家族そのものの効果を取り出すには、他要因を統制した回帰などが要る。
誤解2:「このページの相関ヒートマップは実SSDSEを計算し直したもの」
図2・図3の相関は原論文 表4 の報告値データからの再計算で、SSDSEからの再取得ではない。学力データも4指標も現行SSDSEに収録列が無いため。実SSDSEから作ったのは図4(離婚件数)だけ。図注に区別を明記している。
誤解3:「相関係数が同じなら外れ値は気にしなくてよい」
原論文はスミルノフ=グラブズ検定で秋田県などを除いてから相関を出している。全47県で計算すると学力ペアの相関はやや強めに出る(国語×言語活動:再計算0.9449 vs 報告0.9241)。外れ値の扱いで相関値は変わる。SSDSE指標同士が完全一致したのは、それらに外れ値除去が無かったからにすぎない。
誤解4:「教育費割合が無相関だから教育費は無意味」
無相関なのは都道府県の歳出に占める教育費の割合学習への関心の自己評価スコアの間の話。個々の家庭の教育投資や、割合ではない実額・使途の効果までは否定していない。「割合を上げれば関心が上がるわけではない」という限定的な読みにとどめる。

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

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

相関(相関係数)
2つの量が一緒に動く強さを−1〜+1で表す。本研究はピアソンの積率相関係数を使い、本ページでは大家族×生活習慣=+0.5752、大家族×民生費=−0.6551などを報告値データから再計算した。
相関行列
すべての変数ペアの相関係数を並べた表。本研究は11変数の相関行列を作り、色分けしたヒートマップで一望した。
外れ値/スミルノフ=グラブズ検定
他から大きく外れた値を検出する検定。本研究は有意水準0.05で外れ値が無くなるまで繰り返し、秋田県(学力)や沖縄県(離婚件数割合)を除いてから相関を出した。
回帰直線
散布図の点の傾向を最もよく表す直線。本ページ図3で可視化の補助に使った。傾きと相関係数は密接に関係する。
疑似相関(交絡)
共通の原因(例:地方という環境)によって、直接関係のない2変数が相関して見える現象。大家族・民生費・生活習慣の関係にも地方性が絡む。
因果
一方が他方の原因であること。相関があっても因果があるとは限らない。相関分析は因果の入口の仮説を立てる段階。
再現可能性
他者が同じデータ・手順で同じ結果を得られること。本ページは報告値の可視化・報告データからの再計算・実データの実再現を分けて表示している。
SSDSE
統計センターが提供する教育用標準データセット。本ページ図4はSSDSE-B(都道府県・時系列)の離婚件数を用いた。原論文当時の市区町村版SSDSEの世帯・財政データは現行版に収録が無い。

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

この研究の中心である相関行列・ヒートマップと、その前提となる外れ値検定を、注意点まで順に説明する。

全体像
別々の統計を都道府県で結合 → SSDSEを割合に加工外れ値検定で頑健性を確保 → ピアソン相関で相関行列 → ヒートマップで可視化。予測ではなく「どの指標が学習への関心と一緒に動くか」を探る探索的分析である。
🔗 ピアソン相関相関行列
何をする
2変数が直線的に一緒に動く強さを−1〜+1で測る。全ペアを並べたのが相関行列。本研究は11変数×11変数の相関行列を作った。
本研究での使い方
学習への関心7項目とSSDSE由来4指標の相関を一望し、大家族=正・民生費=負・教育費=無相関という構図を読み取った。
注意
直線関係しか捉えられず、外れ値に弱い。相関の強さは因果や重要度とは別物。無相関の検定で有意性も併せて確認する。
🌡 ヒートマップによる可視化
何をする
相関係数の値をセルの色(青=正・赤=負、濃いほど強い)に置き換え、多数のペアの関係を一目で把握できるようにする。
読み方
濃い色のセルに注目する。本研究では大家族×民生費の濃い赤、大家族×生活習慣の青、教育費の行・列の白(無相関)が読みどころ。
注意
色は印象を強めるので、実際の相関値と有意性を必ず併記して読む。色だけで「強い関係」と早合点しない。
🔍 外れ値検定(スミルノフ=グラブズ)
何をする
1つずつ最も外れた値を検定し、有意なら外れ値として除く操作を、外れ値が無くなるまで繰り返す。有意水準は0.05。
本研究での使い方
全項目で突出する秋田県、離婚件数割合が突出する沖縄県などを除いてから相関を計算し、極端な1県による歪みを抑えた。
注意
外れ値を除くと相関値は変わる(本ページ図2で確認)。除く基準や理由を明示しないと恣意的な操作になりうる。除去は慎重に。
📊 割合への加工とデータ結合
何をする
世帯数・歳出額などの実数を、人口や総額で割った割合に直して県を横並び比較できるようにする。別統計を都道府県コードで結合する。
本研究での使い方
大家族世帯割合=(一般世帯−核家族−単独)/一般世帯×100 などの4指標を作り、学力データと結合した。
注意
割合は分母の取り方で意味が変わる(例:離婚件数割合の分母は一般世帯数)。分母を変えると別指標になる点に注意。

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

この研究の「大家族・民生費が学習への関心と相関する」という発見は、次の研究の出発点になる。

発展1:交絡を除いて「純粋な大家族効果」に迫る
結果X
大家族世帯割合は学習への関心と正の相関、民生費割合とは強い負の相関(−0.6551)で、地方性が全体に絡む。
新仮説Y
民生費割合や都市規模を統制しても、大家族世帯割合と学習への関心の関係は残るのか。
課題Z
重回帰で他要因を同時に投入し、大家族の独自効果を回帰係数として推定する(原論文は相関のみで未実施)。
発展2:時系列・学年で頑健性を確かめる
結果X
ある年の小学校・都道府県別データで正の相関が見られた。
新仮説Y
この関係は年をまたいでも、また中学生でも成り立つのか(家庭の影響は小学生で強いという仮説の検証)。
課題Z
複数年・小中の両方でパネル的に相関を比較し、関係の安定性と学年差を検討する。

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

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

★☆☆☆☆ 難易度1
別の指標のランキングを出す
図1は '大家族世帯割合' を並べている。ここを '民生費割合''教育費割合' に変えて、都道府県ランキングがどう変わるか見てみよう。
★★☆☆☆ 難易度2
別の相関ペアを散布図にする
図3は大家族世帯割合×生活習慣。xyの変数名を '民生費割合'×'規範意識' に変えて、負の相関(r=−0.5193)が右下がりの点として見えることを確かめよう。
★★★☆☆ 難易度3
外れ値を除いて相関を出し直す
図2の相関行列を、df[df['都道府県']!='秋田県'] のように秋田県を除いて計算し、国語×言語活動の相関が0.9449から原論文の0.9241へ近づくかを確かめよう。
★★★★☆ 難易度4
無相関の検定(p値)を付ける
scipy.stats.pearsonr を使って各ペアの相関係数とp値を出し、原論文 表5 のように「有意(p<0.05)かどうか」を判定する表を作ってみよう。
★★★★★ 難易度5
なぜ4指標が実SSDSEで再現できないのか説明する
原論文の大家族世帯割合・教育費割合・民生費割合が、なぜ現行SSDSE-B/A/C/Eで実再現できないのかを、元データ(国勢調査の世帯構成・地方財政)が現行SSDSEに収録列を持たないことと、離婚件数だけが残っていることを対比して自分の言葉で説明してみよう。

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

「多変数の相関行列とヒートマップで関係を一望する」発想は、教育・行政・ビジネスの現場で広く使われている。

🏫
教育政策のエビデンス
学力調査と家庭環境・地域指標の相関を見て、支援を重点化すべき地域や要因の当たりをつける。本研究と同じ発想。
🏙️
自治体データの探索
歳出構成・人口・世帯構成など多数の指標の相関行列を作り、地域課題どうしの結びつきを俯瞰して政策の優先順位を検討する。
📈
マーケティングの要因探索
売上と多数の行動・属性データの相関ヒートマップから、注目すべき変数を絞り込み、詳しい分析の前段の仮説出しに使う。

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

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

Q. なぜ学力の平均正答率ではなく「学習への関心」を見たの?
A. 著者は、点数そのものより学習への関心・意欲の方が家庭環境の影響を受けやすく、関心が高まればやがて学力向上につながる、と考えたためです。因果の入口にあたる関心に着目したわけです。
Q. 大家族世帯割合が高い=子どもの関心が高まる、と言える?
A. 言えません。相関は因果ではなく、大家族が多い地方は民生費割合が低く生活習慣も高い、というように地方という共通環境が全部を同時に押し上げている可能性があります(交絡)。
Q. このページの相関ヒートマップは原論文と同じ数値ですか?
A. 図2・図3の相関は原論文 表4 の報告値データからの再計算です。SSDSE指標同士(大家族×民生費など)は原論文 表6 と小数4桁まで一致しますが、学力を含むペアは原論文が外れ値(秋田県など)を除いているぶんだけ差が出ます。新たな数値の捏造はしていません。実SSDSEから作ったのは図4(離婚件数)だけです。
Q. 原論文の4指標はなぜ今のSSDSEで再現できないの?
A. 当時使われた市区町村版SSDSEの世帯構成(国勢調査)や地方財政(歳出・民生費・教育費)のデータが、現行のSSDSE-A/B/C/Eには収録列として無いためです。原論文の4指標のうち、今も残っているのは離婚件数(A9201)だけで、それを図4で実再現しています。

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

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

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

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

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