この教材は原論文と同じデータを読み込み、同じ手順で計算し直しています。画面に出る数値と図は、あなたのブラウザがその場で計算した結果です。
| 原論文が使ったデータ | 全国学力・学習状況調査・SSDSE-A 分析単位:都道府県 中核手法:相関分析・スミルノフ=グラブズ検定・無相関の検定 |
|---|---|
| この教材が使うデータ |
|
| 原論文(PDF) | SSDSEデータを活用した全国学習状況調査結果との相関分析 優秀賞/宮本 雨月、金山 瑠依、門脇 俊樹(和歌山県立田辺工業高等学校) |
原論文と同じ粒度のデータは、この教材にも同梱しています。これを読み込めば、原論文と同じ細かさで分析をやり直せます(下の「🐍 ブラウザで動かす」でコードを書き換えて試せます)。ただし原論文が使った項目がすべて収録されているとは限りません。足りない項目は、上の「できないこと」に書いた出典から取ってくる必要があります。
▶ ここに書いてある分析は、ページ下部の「🐍 ブラウザで動かす」でそのまま実行できます(インストール不要)。動かしているのは code/2018_H2_yushu.py(303 行)そのものです。
このページで実SSDSEから実再現できるのは図4(離婚件数)だけです。コードの編集は不要です。図1〜図3は、原論文が使った学力データ・家庭構成・地方財政の各指標が現行SSDSEに収録されていないため、原論文 表4 の報告値を転記して可視化・再計算します。
data/raw/ フォルダに入れます。html/figures/ に自動保存されます。図1〜図3は原論文 表4 の報告値から、図4は SSDSE-B の離婚件数(A9201・2023年)から実再現します。
毎年、文部科学省は「全国学力・学習状況調査(全国学力テスト)」を小6・中3を対象に実施し、正答率だけでなく学習への関心・意欲・態度などの質問紙結果も都道府県別に公表している。著者らは、学習への関心は本人だけでなく家庭環境や自治体の政策にも左右されると考えた。
そこで本研究は、学力の平均正答率にはあえて着目せず、小学生の「学習への関心等」に絞り、それが家庭の構成(大家族かどうか)や自治体の教育費・福祉支出とどう関係するかを都道府県単位で調べた。中学生より小学生の方が家庭の影響が大きいだろう、という仮説から小学校データを基準にしている。手法の中心は相関行列と、その色分け(ヒートマップ)である。
高校生の部・優秀賞 全国学力・学習状況調査(報告値) 相関行列・ヒートマップ 外れ値検定(スミルノフ=グラブズ)
本研究は2種類のデータを都道府県単位で結合している。学習への関心7項目は全国学力・学習状況調査(児童質問紙)、家庭・財政の4指標はSSDSE由来の加工データである。
| 役割 | 変数 | 出典(調査) | 本ページでの扱い |
|---|---|---|---|
| 被説明 | 学習への関心等 7項目(国語・数学への関心、規範意識、自尊感情、言語活動・読解力、生活習慣、学習習慣) | 全国学力・学習状況調査 児童質問紙(小学校・都道府県別) | 報告値の可視化(SSDSE収録外) |
| 説明 | 大家族世帯割合・教育費割合・離婚件数割合・民生費割合 | 2018年当時の市区町村版SSDSE(国勢調査の世帯構成・地方財政) | 報告値(現行SSDSEに列なし) |
| 実再現できる | 離婚件数(A9201) | SSDSE-B-2026(2023年) | 実再現 |
市区町村のSSDSEを都道府県別に集計し、次の4指標を作った。大家族世帯割合=(一般世帯数−核家族−単独)/一般世帯数×100、教育費割合=教育費/歳出決算総額×100、離婚件数割合=離婚件数/一般世帯数×100、民生費割合=民生費/歳出決算総額×100。実数のままだと人口規模に引っ張られるため、割合に直して県を横並びで比較できるようにしている。
相関は極端な1県に大きく歪められる。そこでスミルノフ=グラブズ検定(有意水準0.05)を、外れ値が無くなるまで各変数で繰り返した。学力側では秋田県(全国トップで突出)などが、離婚件数割合では沖縄県(0.66で突出)が除かれた。
ピアソンの積率相関係数で11変数の相関行列を作り、無相関の検定(有意水準0.05)で有意性を確認。値の大小をセルの色(青=正・赤=負)に置き換えたヒートマップで全体像を一望した。
まず、原論文が最重要視した説明変数「大家族世帯割合」が都道府県でどう分布するかを見る。この指標の元データ(国勢調査の世帯構成)は現行SSDSEに無いため、原論文 表4 の報告値を転記して可視化する(再計算ではない)。
DataFrame にする。このブロックは数値を作り出さず、原論文の報告値を読み込むだけ。以降の図はすべてこの表を出発点にする。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
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
本研究の中心成果が相関行列のヒートマップ(原論文 表7)だ。ここでは原論文 表4 の報告値データからピアソン相関を再計算し、原論文 表6 と一致するかを検証する。SSDSEからの再取得ではない。
df.corr() で再計算し、青(正)〜赤(負)で色分けしたヒートマップを描く。あわせて再計算値と原論文 表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
原論文の核心的な発見は「大家族世帯割合が高い県ほど、規範意識・生活習慣・学習習慣が高い」だった。その代表として大家族世帯割合 × 生活習慣を散布図で確かめる。生活習慣は原論文で外れ値なしのため、報告値データから再計算した相関は表6の値と一致するはずだ。
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
最後に、唯一 実データで再現できる部分を見る。原論文の4指標のうち、現行 SSDSE-B に実在する変数は離婚件数(A9201)だけだ。ここは実SSDSEから県別ランキングを作る。ただし原論文の離婚件数割合とは分母(一般世帯数 vs 総人口)も調査年も異なるため、数値そのものは一致しない。
cp932 で読み、都道府県行のみを抽出、年度==2023 に絞って離婚件数(A9201)を総人口で割った対人口比(人口千対)でランキングする。原論文が使った4指標のうち、現行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
著者は相関行列(原論文 表6)から、次の3つの発見を読み解いた。原論文5章の考察である。
大家族世帯割合は規範意識・言語活動読解力・生活習慣・学習習慣と正の相関を示し、これら4項目はさらに国語・数学への関心とも正の相関だった。著者は「両親だけでなく祖父母等との日常的な関わりが、規範意識や生活習慣・学習習慣を高め、それが学習への関心を育む」と考察する。関心が高まれば意欲的に学び、学力向上にもつながりうる、という見立てだ。
各自治体の歳出に占める教育費割合はどの学習項目とも有意な相関を示さなかった(図2でも教育費の行・列はほぼ白)。著者は「教育費への支出を増やしても、学習への関心に及ぼす影響は限定的なのではないか」と述べる。お金のかけ方だけでは関心は動かない、という示唆である。
歳出に占める民生費割合は、規範意識・自尊感情・言語活動・生活習慣・学習習慣と負の相関(規範意識で−0.5193)。民生費が多い=福祉や児童手当など公的支援を要する家庭が多い自治体と考えられ、そうした地域では規範意識や学習習慣が確立されにくく学習への関心も薄くなりやすい、と著者は解釈した。
本研究は、小学生の学習への関心は家庭の構成や自治体の支出とどう相関するかという問いに、相関行列とヒートマップで迫った。結果、大家族世帯割合は規範意識・生活習慣・学習習慣などと正の相関(生活習慣 r=+0.5752)、民生費割合は多くの学習項目と負の相関(規範意識 r=−0.5193)、教育費割合はどの項目とも無相関、という3点を報告した。著者は「大家族世帯で生活しやすい環境づくりが、子どもの学習状況に良い影響を与え、学習への関心を通じて学力向上につながる」と結論した。本ページでは、学力・4指標は報告値として可視化・再計算し、実SSDSEに残る離婚件数だけを実再現して切り分けた。
このページの図は、以下から再現できます。
🐍 再現コード(.py) 📊 SSDSE-B-2026.csv
※ 図4(離婚件数の対人口比)はSSDSE-B-2026から算出した実再現です(2023年)。図1(大家族世帯割合ランキング)は、原論文の説明変数が2018年当時の市区町村版SSDSE(国勢調査の世帯構成・地方財政)由来で現行SSDSEに列が無いため、原論文 表4 の報告値を転記して可視化したものです。図2・図3の相関は、原論文 表4 の報告値データから再計算した値で、SSDSEからの再取得ではありません(新たな数値の捏造はしていません)。原論文は回帰係数・t値・p値を報告していません(相関係数と有意判定のみ)。
この研究を読むとき・まねするときに陥りやすい誤解を整理する。
クリックすると各用語の詳しい解説ページに移動できます。
この研究の中心である相関行列・ヒートマップと、その前提となる外れ値検定を、注意点まで順に説明する。
この研究の「大家族・民生費が学習への関心と相関する」という発見は、次の研究の出発点になる。
再現コードを少し変えるだけで試せる課題を、易しい順に用意した。
'大家族世帯割合' を並べている。ここを '民生費割合' や '教育費割合' に変えて、都道府県ランキングがどう変わるか見てみよう。xとyの変数名を '民生費割合'×'規範意識' に変えて、負の相関(r=−0.5193)が右下がりの点として見えることを確かめよう。df[df['都道府県']!='秋田県'] のように秋田県を除いて計算し、国語×言語活動の相関が0.9449から原論文の0.9241へ近づくかを確かめよう。scipy.stats.pearsonr を使って各ペアの相関係数とp値を出し、原論文 表5 のように「有意(p<0.05)かどうか」を判定する表を作ってみよう。「多変数の相関行列とヒートマップで関係を一望する」発想は、教育・行政・ビジネスの現場で広く使われている。
この研究を読んで浮かびやすい疑問に答える。
この論文を理解できたか、クリックで確認しましょう。間違えても解説が出ます。
このページの分析は、この画面の中でそのまま実行できます。
Python をインストールする必要も、CSV をダウンロードする必要もありません。
下のセルの 「▶ ブラウザで実行」 を上から順に押すか、
「▶ 最初から全部実行」 で一気に流してください。
表示されるのは、本文の図表とまったく同じ計算の結果です
(動かしているのは再現スクリプト code/2018_H2_yushu.py そのもの)。
コードは書き換えられます。「✏️ 書き換える」で数字や変数を変えて ▶ を押すと、 結果がどう変わるかをその場で確かめられます(元に戻すボタンつき)。 ページを開いた時点で裏で実行環境の準備が始まっているので、待ち時間はほとんどありません。 初回だけ実行環境の取得にインターネット接続が必要です。