論文一覧に戻る 🕸 論文ネットワーク 🗺 用語ネットワーク 統計データ分析コンペ 教育用再現集
特別賞(審査員奨励)[大学生・一般の部] ★
2021年度(令和3年度)

教育における芸術の影響
How Art and Arts Can Influence Learning

⏱️ 推定読了時間: 約30分
統計データ分析コンペティション 2021 | 梶田 朱音(慶應義塾大学大学院健康マネジメント研究科) | 松山 晃之(株式会社 J Institute)
K-means法 決定木(回帰木) STEAM教育 SSDSE-B/C/D 47都道府県
🔬 AIC/BIC🔬 K-means法🔬 クラスター分析🔬 決定木(回帰木)🏷 文化・余暇
🔬 手法タグ / 🏷 応用タグ(クリックで同タグの論文をネットワーク検索)
🔬 再現カルテ — 原論文と同じデータ・同じ手法で再現

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

原論文が使ったデータSSDSE-B・SSDSE-C・SSDSE-D・e-stat・学習に対する意識調査質問紙・全国学力調査
分析単位:都道府県
中核手法:決定木分析・K-means法・クラスタリング分析
この教材が使うデータ
原論文(PDF)教育における芸術の影響 How Art and Arts Can Influence Learning
特別賞/梶田 朱音(慶應義塾大学大学院健康マネジメント研究科) 松山 晃之(株式会社 J Institute)
✅ この教材でできること
  • 原論文の中核手法(クラスタリング分析)を実データで実行できる
  • 分析に使うデータは同梱済みで、ブラウザ上でそのまま読み込める
  • 数値・図を最後まで再計算できる(主成分分析・k-means クラスタリング)
突合監査の結果、主要データと中核手法はいずれも原論文と一致しています。
🚀 原論文と同じ粒度で挑戦したい人へ

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

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

🏅 論文審査会コメント(審査員はここを評価した)
「当初の問題意識は面白く、既存研究をベースに適切な分析が行われていて評価できる。K-Meansの後の教師付き分離の決定はCARTで行っているようだがプロセスの記載が明確でなく、論文としての論理的構成がやや弱い。」
出典:統計センター「統計データ分析コンペティション」受賞論文PDF掲載の審査講評。プロの審査員が何を評価し、何を注文したかは論文の読み方の最良の手本になる。
📝 3行で分かる要約

目次

  1. 研究の背景:STEAM教育と「芸術」
  2. 使用データと再現可能性の整理
  3. 分析方法:K-means → 決定木(回帰木)
  4. 図1:学業成績へ影響する因子の概念図(報告値の可視化)
  5. 図2:国語Aの決定木「列の寄与」(報告値の可視化)
  6. 図3:各教科で最も寄与した変数(報告値の可視化)
  7. 主要な発見(原論文の報告値)
  8. 再現コード:SSDSE-Bを読み込む(実再現)
  9. 図4:K-means法による都道府県クラスタリング(実再現)
  10. 図5:教養娯楽費率ランキング(実再現)
  11. 結果の解釈と結論
  12. まとめ
  13. 📥 データの準備
  14. 💼 実社会での応用
  15. ⚠️ よくある誤解
  16. 📖 用語集
  17. 📐 手法ガイド
  18. 🚀 発展の可能性
  19. 🎯 自分でやってみよう
  20. 🤔 Q&A
  21. 🐍 ブラウザで動かす

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

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

このページのK-means法(図4)と教養娯楽費率ランキング(図5)は、以下の手順で自分で再現できます。コードの編集は不要です。(概念図=図1、決定木の寄与=図2・図3は、全国学力調査の点数や博物館・映画館数などSSDSE-Bに無いデータに基づくため、原論文の報告値を可視化します。)

1
データをダウンロードする 統計センターの SSDSE 配布ページから、以下のファイルをダウンロードします。
SSDSE-B-2026.csv ← SSDSE-B(都道府県データ)📥 直接DL
⬇ SSDSEダウンロードページを開く
2
ファイルを所定のフォルダに配置する ダウンロードしたCSVを、プロジェクトの data/raw/ フォルダに入れます。
2026 統計・データ解析コンペ/ ├── code/ │ └── 2021_U5_5_shorei.py ← 実行するスクリプト └── data/ └── raw/ SSDSE-B-2026.csv ← ここに置く
3
スクリプトをそのまま実行する ターミナルでプロジェクトルートに移動し、以下を実行します。
python3 code/2021_U5_5_shorei.py
図は html/figures/ に自動保存されます。
研究の背景:STEAM教育と「芸術」

Society 5.0 で科学技術に貢献する人材を育てるSTEM教育(Science・Technology・Engineering・Mathematics)に、純粋・大衆芸術を意味する「Art」や人文を意味する「Arts」を加えた概念がSTEAM教育である。芸術的な要素が全教科、ひいては子どもの学力や知性そのものに影響するという考え方だが、どのような芸術が学力に有用に働くのかは明らかでなく、専門家の間でも意見が分かれる。

そこで著者は、STEAM教育が重視する「芸術」「人文」を、より包括的に「芸術を含む文化」や、芸術的感性を育む資源としての「地域特性」「地域の環境」と捉え直した。既存研究で学力と関連が示された家庭・個人の因子に加え、博物館数・映画館数などの芸術資源を説明変数とし、目的変数に全国学力調査(2018年度・小学生)の教科別平均点を用いて分析した。

研究の問い 芸術的な感性を育むと思われる環境的要因(地域特性・地域の環境)は、子どもの学力にどのような影響を及ぼすのか。とくにどのような芸術が教育に有用に働くのかを明らかにする。
先行研究(原論文が引用) グッゲンハイム美術館の研究(2014〜16年)では、絵画・彫刻を学んだ小学生に描写する言語能力・仮説を立てる能力・論理的思考力の向上が見られたと報告。韓国の3D学習導入(2003年・2015年報告)では課題への没入度の向上が報告された。家族構造・食習慣・親の所得・キョウダイ数なども学力と関連するとされる。

大学生・一般の部 全国学力調査(小学生・2018) K-means法 決定木(回帰木) STEAM教育

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

著者は、地域環境・地域特性を表す変数としてSSDSE-B(2018年)を、芸術・人文・文化や家庭に関する変数としてSSDSE-C・SSDSE-Dを用いた。芸術変数にはe-Statから自然・芸術施設(博物館・美術館・常設映画館・動植物園・図書館など)を追加。個人変数として学習に対する意識調査(例:地域社会への関心)を、目的変数として全国学力調査の小学生・教科別平均点(2018年度)を用いた。

なぜ小学生のデータだけか(原論文の記述) 全国学力調査で小学生と中学生の都市別データが大きく異なり、都市部の私立中学が受験していないことによる選択バイアスの可能性が示唆された。そのため小学生のデータのみを用いた。

表1 芸術・家庭・個人変数(原論文 表1〜3 の要約)

区分主な変数(原論文の報告)
芸術変数博物館数・美術博物館数・常設映画館数・図書館数・動植物園数(人口110万人あたり)、自然公園面積割合・森林面積割合、人文学(英語/英語以外の外国語/人文・社会・自然科学)
家庭変数起床時間・就寝時間、朝食頻度、余暇の過ごし方(学習・スポーツ・ボランティア・旅行/行楽)、食習慣(穀類・魚介・肉・野菜・調味料・飲料・酒類・外食)、世帯人員、一人当たり県民所得
個人変数学習に対する意識調査(家庭学習、地域社会への関心 など)
目的変数全国学力調査 小学生 教科別平均点(国語A・国語B・算数A・算数B・理科, 2018年度)
再現可能性の整理(このページの図の作り方)
  • 報告値の可視化(再計算ではない):概念図(図1)と決定木の寄与(図2・図3)は、全国学力調査の点数・博物館数・地域社会への関心など、本教材のSSDSE-Bに収録されていないデータに基づく。したがって原論文(PDF原本)の報告値を転記して可視化する。新たな数値の計算は一切していない。
  • 実再現できる部分:原論文の中核手法K-means法は、SSDSE-Bの文化・教育・生活の代理変数で手法として実演できる(図4)。ただし投入変数が原論文と異なるためクラスター構成は原論文の表4と一致しない。また「生活に根差した大衆文化への関与」の地域差は教養娯楽費率の分布で実再現できる(図5)。年次は2023年である点を図注に明記する。

分析方法:K-means法 → 決定木(回帰木)

分析の流れ
地域特性の変数
K-means法
で地域を類型化
クラスター変数+
芸術/家庭/個人変数
決定木(回帰木)
教科別平均点を予測

① K-means法(地域特性のクラスタリング)

各データとクラスター中心との距離を比較して各都道府県をグループに割り当てる教師なし学習。地域特性の似た都道府県をまとめ、その所属クラスターを質的変数として決定木に投入する。クラスター数は立方クラスタリング基準(Cubic Clustering Criterion)で決定した(原論文は8クラスター)。

② 決定木(回帰木)

説明変数を二進分岐させて木を成長させる、可読性の高い手法。目的変数が連続量(テスト平均点)のため回帰木を用い、分岐の基準に平方和の分解を使う。親ノードの偏差平方和 SS から子ノードの偏差平方和の和 SSTW を引いた SSTB=SS−SSTW が最大になる変数で分岐する。成長のストップルールはAICc が最小になる点とした。ソフトウェアはJMPを使用。

論文審査会コメント(原論文) 「当初の問題意識は面白く、既存研究をベースに適切な分析が行われていて評価できる。K-Meansの後の教師付き分離の決定はCARTで行っているようだがプロセスの記載が明確でなく、論文としての論理的構成がやや弱い。」
1
図1:学業成績へ影響する因子の概念図(報告値の可視化)

著者は、地理的環境が地域特性を育み、そのなかで家族が生活し個人が成長していく——という相互作用を概念図(原論文 図1)にまとめた。これはデータの再計算ではなく、原論文が示した概念の転記である。

学業成績へ影響する因子の概念図(報告値の可視化)
図1:学業成績へ影響する因子の概念図。報告値の可視化(再計算ではない)(原論文 図1 の再描画・概念の転記)。地理的環境→地域特性→個人、家庭→個人、そして地域特性・個人→学業成績という関係を表す。
2
図2:国語Aの決定木「列の寄与」(報告値の可視化)

国語A(慣用句・漢字・敬語などの知識)の回帰木で、各変数がどれだけ分岐に寄与したか(列の寄与=平方和)を、原論文 図5 の印字値から転記する。全国学力調査の点数がSSDSE-Bに無いため再計算はできない

やってみよう原論文 図5(国語A 回帰木)の「列の寄与」を転記する【報告値の可視化】
  • ① このコードの目的:PDF原本 図5 に印字された「列の寄与(平方和)」を辞書に転記する。地域社会への関心=79.8、世帯人員=29.9、酒類=25.6。これらは著者がJMPで得た報告値であり、本スクリプトで計算した値ではない。
  • ② 前後のつながり:ここで転記した平方和がそのまま図2の棒グラフになる。決定木そのものはSSDSE-Bに学力点数が無く再現できないため、寄与の大きさの転記にとどめる(再計算ではない)。
📝 コード
87
88
89
90
91
92
93
94
95
96
kokugoA_contrib = {
    '地域社会への関心': {'分岐数': 1, '平方和': 79.8},
    '世帯人員':       {'分岐数': 2, '平方和': 29.9},
    '酒類':           {'分岐数': 1, '平方和': 25.6},
}
print('原論文 図5(国語A・回帰木)R²=0.63, N=47(PDF図中の印字値)')
print(f'{"変数":<12}{"分岐数":>6}{"平方和(寄与)":>12}')
for k, v in kokugoA_contrib.items():
    print(f'{k:<12}{v["分岐数"]:>6}{v["平方和"]:>12}')
print('※ これらは原論文の報告値の転記であり、本スクリプトで計算した値ではない。')
▼ 実行結果
=== [2] 原論文 図5:国語A 回帰木の「列の寄与」を転記【報告値の可視化・再計算ではない】 ===
原論文 図5(国語A・回帰木)R²=0.63, N=47(PDF図中の印字値)
変数             分岐数     平方和(寄与)
地域社会への関心         1        79.8
世帯人員             2        29.9
酒類               1        25.6
※ これらは原論文の報告値の転記であり、本スクリプトで計算した値ではない。
  • ④ 実行結果の読み取り:地域社会への関心(平方和79.8)が突出して寄与が大きく、世帯人員(29.9)、酒類(25.6)が続く。国語Aの回帰木の0.63(N=47)と報告されている。すべて原論文の報告値である。
国語A 決定木の列の寄与(報告値の可視化)
図2:国語A 回帰木の「列の寄与(平方和)」。報告値の可視化(再計算ではない)(原論文 図5・JMP出力の転記, R²=0.63, N=47)。値は原論文図中の印字を転記したもので、本ページで計算したものではない。
📊 この図の読み方
列の寄与
その変数が分岐で減らした偏差平方和の合計。大きいほど目的変数(点数)の説明に効いている。
地域社会への関心
国語Aで最大の寄与。関心が高い地域ほど成績が良い、という結果。上位7地域のうち6がクラスター6だった(報告値)。
位置づけ
報告値の可視化。数値は原論文の転記で、本ページで新たに計算したものではない。
3
図3:各教科で最も寄与した変数(報告値の可視化)

国語A・国語B・算数A・算数B・理科の各回帰木で、最も寄与した変数を原論文 第3章から転記する。特徴的なのは算数A(基礎)で「絵画・彫刻の制作」が最上位だったことである。

やってみよう各教科の回帰木で最も寄与した変数を転記する【報告値の可視化】
  • ① このコードの目的:PDF本文の記述を教科ごとに転記する。多くの教科で地域社会への関心が最上位だが、算数A(基礎)だけは「絵画・彫刻の制作」が最上位。算数B(応用)はR²=0.5と当てはまりが弱いことも併記する。
  • ② 前後のつながり:ここで転記した最上位変数がそのまま図3の一覧になる。決定木の当てはまり(R²)や座標はSSDSE-Bで再現できないため、報告値の転記にとどめる。
📝 コード
102
103
104
105
106
107
108
109
110
111
112
subject_top = [
    ('国語A(基礎)', '地域社会への関心',  '知識中心。高関心地域で高得点。上位7地域中6がクラスター6'),
    ('国語B(応用)', '地域社会への関心',  '次いで「英語以外の言語」「人口あたり常設映画館数」が寄与'),
    ('算数A(基礎)', '絵画・彫刻の制作',  '最も寄与率の高い変数。手作業を伴う芸術が関与'),
    ('算数B(応用)', '地域社会への関心',  'R²=0.5 と当てはまりは弱い。次いで常設映画館数'),
    ('理科',         '地域社会への関心',  '地域社会への関心・常設映画館数・絵画彫刻の制作が寄与'),
]
print(f'{"教科":<14}{"最上位の寄与変数":<16}補足(PDF本文の記述)')
for s, top, note in subject_top:
    print(f'{s:<14}{top:<16}{note}')
print('※ すべて原論文(PDF)の報告値。SSDSE-B に学力調査点数が無いため再計算不可。')
▼ 実行結果
=== [3] 各教科 回帰木の主要寄与変数を転記【報告値の可視化・再計算ではない】 ===
教科            最上位の寄与変数        補足(PDF本文の記述)
国語A(基礎)       地域社会への関心        知識中心。高関心地域で高得点。上位7地域中6がクラスター6
国語B(応用)       地域社会への関心        次いで「英語以外の言語」「人口あたり常設映画館数」が寄与
算数A(基礎)       絵画・彫刻の制作        最も寄与率の高い変数。手作業を伴う芸術が関与
算数B(応用)       地域社会への関心        R²=0.5 と当てはまりは弱い。次いで常設映画館数
理科            地域社会への関心        地域社会への関心・常設映画館数・絵画彫刻の制作が寄与
※ すべて原論文(PDF)の報告値。SSDSE-B に学力調査点数が無いため再計算不可。
  • ④ 実行結果の読み取り:国語A・国語B・算数B・理科では「地域社会への関心」が最上位。算数A(基礎)だけ「絵画・彫刻の制作」が最上位で、手作業を伴う芸術が基礎学力に関係する可能性を示す。国語Bでは「英語以外の言語」「常設映画館数」も寄与。すべて原論文の報告値。
各教科で最も寄与した変数(報告値の可視化)
図3:各教科の回帰木で最も寄与した変数。報告値の可視化(再計算ではない)(原論文 第3章の転記)。多くの教科で「地域社会への関心」、算数A(基礎)で「絵画・彫刻の制作」が最上位。
4
主要な発見(原論文の報告値)

以下はすべて原論文の報告値である。

教科最も寄与した変数著者の記述
算数A(基礎)絵画・彫刻の制作手作業を伴う芸術が最上位。制作時間が少ない地域では家庭学習時間が高得点に寄与
国語A(基礎)地域社会への関心R²=0.63。上位7地域中6がクラスター6
国語B(応用)地域社会への関心次いで「英語以外の言語」「人口あたり常設映画館数」が寄与
算数B(応用)地域社会への関心R²=0.5と当てはまりは弱い。次いで常設映画館数
理科地域社会への関心常設映画館数・絵画彫刻の制作も寄与

クラスター分析では、秋田・石川・福井・富山はどの教科でも平均点が高く、いずれもクラスター6に分類され、地域社会への関心が相対的に高い地域であった(報告値)。ただし著者は「地域社会への関心が高いから成績が良い」という因果関係は導き出せないと明記している。

算数Bの当てはまりの弱さも正直に記述 著者は、算数Bの回帰木のR²が0.5で、他のモデルと比べてあまり当てはまりが良くないと率直に述べている(原論文の報告値)。モデルの限界を隠さない姿勢である。
5
再現コード:SSDSE-Bを読み込む(実再現)

原論文の中核データ(全国学力調査の点数・博物館数など)はSSDSE-Bに無い。しかし原論文の中核手法であるK-means法は、SSDSE-Bの文化・教育・生活変数で手法として実演できる。まず読み込んで代理変数を作る。

やってみようSSDSE-B を読み込み、文化・教育・生活の代理変数を作る【実再現】
  • ① このコードの目的:SSDSE-B を cp932・header=1 で読み込み、地域コードが R+5桁の都道府県行の2023年を残す。原論文の芸術・家庭・個人変数はSSDSE-Bに無いため、教養娯楽費率・教育費率・高齢化率・年少人口率・高校進学率・児童教員比という代理変数を作る。
  • ② 前後のつながり:ここで用意した代理変数が、次のK-means法(図4)の入力になる。原論文の「地域特性のクラスタリング」を、手法として実データで再現するための下ごしらえである。
📝 コード
55
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
df_b = pd.read_csv(DATA_B, encoding='cp932', header=1)
df_b = df_b[df_b['地域コード'].astype(str).str.match(r'^R\d{5}', na=False)].copy()
df_b['年度'] = df_b['年度'].astype(int)

df = df_b[df_b['年度'] == 2023].copy().reset_index(drop=True)
assert len(df) == 47, f'47都道府県が揃っていません: {len(df)}件'
print(f'対象年: 2023年 / 対象都道府県数: {len(df)}')

pop = df['総人口']
# 文化への関与(原論文の「芸術を含む文化」の代理): 消費支出に占める教養娯楽費の割合
df['教養娯楽費率'] = df['教養娯楽費(二人以上の世帯)'] / df['消費支出(二人以上の世帯)'] * 100
# 教育への支出(家庭の教育熱の代理)
df['教育費率']   = df['教育費(二人以上の世帯)'] / df['消費支出(二人以上の世帯)'] * 100
# 人口構成
df['高齢化率']   = df['65歳以上人口'] / pop * 100
df['年少人口率'] = df['15歳未満人口'] / pop * 100
# 進学志向(教育環境の代理)
df['高校進学率'] = df['高等学校卒業者のうち進学者数'] / df['高等学校卒業者数'] * 100
# 学校の手厚さ(小学校の教員1人あたり児童数:小さいほど手厚い)
df['児童教員比'] = df['小学校児童数'] / df['小学校教員数']

FEATURES = ['教養娯楽費率', '教育費率', '高齢化率', '年少人口率', '高校進学率', '児童教員比']
print('\n投入する代理変数(原論文の芸術・家庭・個人変数はSSDSE-B未収録のため代理):')
print('  ', '、'.join(FEATURES))
print('\n記述統計(平均・最小・最大):')
print(df[FEATURES].describe().loc[['mean', 'min', 'max']].round(2).T.to_string())
▼ 実行結果
=== [1] SSDSE-B の読み込みと文化・教育・生活の代理変数づくり【実再現】 ===
対象年: 2023年 / 対象都道府県数: 47

投入する代理変数(原論文の芸術・家庭・個人変数はSSDSE-B未収録のため代理):
   教養娯楽費率、教育費率、高齢化率、年少人口率、高校進学率、児童教員比

記述統計(平均・最小・最大):
         mean    min    max
教養娯楽費率   9.23   7.01  12.00
教育費率     3.19   1.59   7.08
高齢化率    31.59  22.75  39.06
年少人口率   11.47   9.08  16.08
高校進学率   57.56  46.69  74.12
児童教員比   13.25  10.51  17.10
  • ④ 実行結果の読み取り:2023年の47都道府県が揃い、6つの代理変数の記述統計が出力された(例:教養娯楽費率は平均9.23%・最小7.01%〜最大12.00%)。これらは実データによる再計算値で、原論文の芸術変数そのものではない(あくまで文化・教育・生活の代理)。
6
図4:K-means法による都道府県クラスタリング(実再現)
やってみようK-means法で47都道府県をクラスタリングする【実再現(手法の実演)】
  • ① このコードの目的:6つの代理変数を標準化し、KMeansでクラスタリングする。クラスター数kごとのシルエット係数を実計算で示し、原論文の多クラスター型地域類型に倣ってk=6を採用する。原論文の「K-means法による地域特性のクラスタリング」を手法として実演する。
  • ② 前後のつながり:ここで得たクラスター所属が、原論文が決定木に投入した「地域クラスターの質的変数」に対応する。地域特性で都道府県が類型化される様子を、PCAで2次元に落として図4に描く。
📝 コード
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
X = StandardScaler().fit_transform(df[FEATURES].values)
print('クラスター数kごとのシルエット係数(数値は実データによる再計算):')
for k in range(2, 9):
    km = KMeans(n_clusters=k, n_init=10, random_state=42).fit(X)
    print(f'  k={k}: silhouette={silhouette_score(X, km.labels_):.3f}')

K = 6  # 原論文の多クラスター型地域類型(8クラスター)に倣った説明用の設定
km = KMeans(n_clusters=K, n_init=10, random_state=42).fit(X)
df['クラスター'] = km.labels_
sil = silhouette_score(X, km.labels_)
print(f'\n採用: k={K}(原論文の地域類型の考え方に倣った説明用。silhouette={sil:.3f})')
print('※ 投入変数が原論文(博物館数・地域社会への関心等)と異なるため、')
print('  クラスター構成は原論文の表4とは一致しない(手法の実演であり報告値の再現ではない)。')
print('\n実再現によるクラスター構成(2023年・SSDSE-B代理変数):')
for c in range(K):
    members = list(df[df['クラスター'] == c]['都道府県'])
    print(f'  クラスター{c+1}(n={len(members)}): {"、".join(members)}')

# 各クラスターの平均像
print('\n各クラスターの平均像(代理変数):')
prof = df.groupby('クラスター')[FEATURES].mean().round(2)
prof.index = [f'クラスター{c+1}' for c in prof.index]
print(prof.to_string())
▼ 実行結果
=== [4] K-means法:47都道府県を文化・教育・生活の代理変数でクラスタリング【実再現(手法の実演)】 ===
クラスター数kごとのシルエット係数(数値は実データによる再計算):
  k=2: silhouette=0.370
  k=3: silhouette=0.363
  k=4: silhouette=0.276
  k=5: silhouette=0.205
  k=6: silhouette=0.225
  k=7: silhouette=0.202
  k=8: silhouette=0.220

採用: k=6(原論文の地域類型の考え方に倣った説明用。silhouette=0.225)
※ 投入変数が原論文(博物館数・地域社会への関心等)と異なるため、
  クラスター構成は原論文の表4とは一致しない(手法の実演であり報告値の再現ではない)。

実再現によるクラスター構成(2023年・SSDSE-B代理変数):
  クラスター1(n=8): 鳥取県、島根県、佐賀県、長崎県、熊本県、大分県、宮崎県、鹿児島県
  クラスター2(n=9): 千葉県、石川県、愛知県、滋賀県、京都府、大阪府、兵庫県、奈良県、福岡県
  クラスター3(n=3): 埼玉県、東京都、神奈川県
  クラスター4(n=1): 沖縄県
  クラスター5(n=13): 宮城県、茨城県、栃木県、群馬県、福井県、山梨県、長野県、岐阜県、静岡県、三重県、岡山県、広島県、香川県
  クラスター6(n=13): 北海道、青森県、岩手県、秋田県、山形県、福島県、新潟県、富山県、和歌山県、山口県、徳島県、愛媛県、高知県

各クラスターの平均像(代理変数):
        教養娯楽費率  教育費率   高齢化率  年少人口率  高校進学率  児童教員比
クラスター1    8.45  2.45  33.54  12.36  49.77  12.23
クラスター2   10.01  4.33  28.85  11.75  65.37  14.42
クラスター3   11.27  6.03  25.36  11.08  69.77  16.71
クラスター4    7.36  2.53  23.84  16.08  46.69  15.01
クラスター5    9.29  2.96  31.04  11.42  58.60  13.36
クラスター6    8.77  2.49  34.85  10.51  53.91  12.04
  • ④ 実行結果の読み取り:シルエット係数は実データで再計算した値(k=6で0.225)。得られたクラスターは地理的にまとまりがあり(首都圏=東京・神奈川・埼玉、九州=佐賀〜鹿児島 など)、原論文の「地域特性で都道府県が類型化される」という発想を実演できた。ただし投入変数が原論文(博物館数・地域社会への関心等)と異なるため、クラスター構成は原論文 表4 と一致しない。これは手法の実演であり、報告値の再現ではない。
K-means法による47都道府県のクラスタリング(実再現)
図4:K-means法による47都道府県のクラスタリング(PCAで2次元表示)。実再現(手法の実演)(SSDSE-B 2023年・文化/教育/生活の代理変数6種・k=6)。投入変数が原論文と異なるため、クラスター構成は原論文 表4 とは一致しない
📊 この図の読み方
近い点どうし
文化・教育・生活の特徴が似た都道府県。同じ色=同じクラスター。
主成分1・2
6変数を圧縮した合成軸。都市型(高進学率・高教養娯楽費)と地方型(高齢化)の対比などを反映する。
位置づけ
実再現(手法の実演)。K-means法という手法は本物だが、変数が原論文と異なるためクラスターの中身は原論文と別物。
7
図5:教養娯楽費率ランキング(実再現)

原論文は「博物館・映画館など生活に根差した文化資源」が学力に関係する可能性を論じた。その「文化への関与」の地域差を、家計の教養娯楽費率で実データから確かめる。

やってみよう教養娯楽費率で都道府県をランキングする【実再現】
  • ① このコードの目的:消費支出に占める教養娯楽費の割合を都道府県別に計算し、降順に並べる。原論文が論じた「生活に根差した大衆文化への関与」の地域差を、実データで補足的に確かめる。
  • ② 前後のつながり:ここで得た順位を、図5の横棒ランキングにする。原論文の決定木では映画館・博物館などの文化資源が寄与していたが、その「文化への関与」の地域差を家計側から見る。
📝 コード
146
147
148
149
150
151
152
153
154
rank = df.sort_values('教養娯楽費率', ascending=False).reset_index(drop=True)
print('上位6(文化・娯楽への支出割合が高い):')
for i in range(6):
    print(f'  {i+1:>2}{rank.loc[i, "都道府県"]:<6} {rank.loc[i, "教養娯楽費率"]:.2f}%')
print('下位6(低い):')
for i in range(len(rank) - 6, len(rank)):
    print(f'  {i+1:>2}{rank.loc[i, "都道府県"]:<6} {rank.loc[i, "教養娯楽費率"]:.2f}%')
print('※ 文化・娯楽への支出割合は都市部に集中する傾向。原論文が論じた')
print(' 「生活に根差した大衆文化への関与」の地域差を実データで補足するもの。')
▼ 実行結果
=== [5] 教養娯楽費率(消費支出に占める割合)の都道府県ランキング【実再現】 ===
上位6(文化・娯楽への支出割合が高い):
   1位 神奈川県   12.00%
   2位 東京都    11.83%
   3位 兵庫県    10.52%
   4位 石川県    10.44%
   5位 千葉県    10.32%
   6位 愛知県    10.27%
下位6(低い):
  42位 岐阜県    8.08%
  43位 富山県    7.91%
  44位 青森県    7.83%
  45位 宮崎県    7.62%
  46位 沖縄県    7.36%
  47位 長崎県    7.01%
※ 文化・娯楽への支出割合は都市部に集中する傾向。原論文が論じた
 「生活に根差した大衆文化への関与」の地域差を実データで補足するもの。
  • ④ 実行結果の読み取り:文化・娯楽への支出割合は神奈川・東京・兵庫・石川・千葉・愛知と都市部で高く、長崎・沖縄・宮崎・青森など地方で低い。文化への関与が都市部に集中する傾向が実データで確認できた。これは再計算値で、原論文の決定木の結果そのものではない補足である。
教養娯楽費率 都道府県ランキング(実再現)
図5:教養娯楽費率(消費支出に占める割合)の都道府県ランキング。実再現(SSDSE-B 2023年・二人以上の世帯, N=47)。色は地域ブロック。原論文の「文化への関与」の地域差を家計側から補足したもので、決定木の結果そのものではない。
📊 この図の読み方
上位
消費支出に占める文化・娯楽の割合が高い=都市部(神奈川・東京など)。
下位
割合が低い地方(長崎・沖縄・宮崎など)。
位置づけ
実再現(補足)。原論文の中核(決定木・K-means)とはデータ・手法が異なる、文脈の裏づけである。

結果の解釈と結論(原論文 第4章)

手作業を伴う芸術と労作教育

算数A(基礎)で「絵画・彫刻の制作」が、理科でも絵画彫刻の制作が寄与したことから、著者は「芸術が本当に教育に有用に働くのか?」という問いに対し、現在の学業成績指標においては手作業を伴う芸術が関係する可能性が示唆されたと結論する。これは古くからある労作教育に通じる結果であり、日本でSTEAM教育を運用する際の「A」に活用できる部分だと述べる。

純粋芸術より生活に根差した大衆文化

美術館数(純粋芸術=fine art の環境)よりも、博物館数・映画館数のように大衆的に親しまれる文化資源が多くの教科に現れた。ここから著者は、生活に根差した美・文化への関心や積極的な関わりが学業成績に影響する可能性を考察する。これは多くの教科で重要だった「地域社会への関心」とも共通し、身近な事柄に関心を持つきっかけとしてArt/Artsが役割を担いうると結ぶ。

因果関係は主張していない 著者は、解析の性質上「地域社会への関心が高いから成績が良い」という因果関係は導けないと明記する。地方で暮らす小学生の方が地域への関心が高い傾向にあった、という記述にとどめている。

まとめ

本研究は、地域特性をK-means法で類型化し、そのクラスター変数と芸術・家庭・個人変数を用いて教科別平均点の決定木(回帰木)を作ることで、「どのような芸術が学力に効くか」を探った。多くの教科で「地域社会への関心」が、算数A(基礎)で「絵画・彫刻の制作」が最も寄与し、手作業を伴う芸術生活に根差した大衆文化が学業成績に関係する可能性を示した点に価値がある。

この研究の限界(原論文 第4章第3節) ①博物館・映画館の数は、元々文化的需要のある・教育に熱心な地域であることの反映に過ぎない可能性。②県民所得などデータの粒度が粗かったこと。③従来の成績評価では、STEAM教育の真の効用(新しい問題と答えを生み出す能力)を測りきれないこと。
この研究から学べること 「教師なし学習(K-means)で地域を類型化し、その結果を説明変数に加えて決定木で解釈する」という二段構えの発想。可読性の高い決定木で「何が効くか」を示しつつ、因果は主張しないという節度も学べる。

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

このページのK-means法(図4)と教養娯楽費率ランキング(図5)は、以下から再現できます。

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

※ 概念図(図1)と決定木の寄与(図2・図3)は、全国学力調査の点数や博物館・映画館数などSSDSE-Bに無いデータに基づくため再計算できず、原論文の報告値を可視化したものです。図4・図5はSSDSE-Bによる実再現ですが、図4は投入変数が原論文と異なるためクラスター構成は原論文と一致しません。年次はいずれも2023年です。

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

「教師なし学習で類型化 → 決定木で解釈」という流れは、現場でも広く使われている。

🗾
地域政策・EBPM
都道府県・市区町村をクラスタリングして地域類型を作り、類型ごとに施策を最適化する。教育・福祉・産業政策の立案に使う。
🛒
顧客セグメンテーション
購買データで顧客をK-meansで分け、セグメントごとの特徴を決定木で読み解いて施策を打つ。マーケティングの定番。
🏥
医療・健康分野の要因探索
連続量(検査値・スコア)を目的変数に回帰木を作り、どの生活習慣・環境要因が効くかを可読的に示す。本研究の著者の専門にも通じる。

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

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

誤解1:「芸術に触れさせれば学力が上がる、と証明された」
著者は因果関係は導けないと明記している。決定木で「寄与が大きい」ことは相関的な関連であって、芸術活動が学力を引き上げる因果の証拠ではない。
誤解2:「このページの決定木は原論文の数値を計算し直したもの」
図2・図3は原論文の報告値の可視化(再計算ではない)。全国学力調査の点数がSSDSE-Bに無いため転記である。図4・図5は実再現だが、図4は変数が原論文と異なるためクラスターの中身は原論文と別物。図注に明記している。
誤解3:「クラスター6=成績が良い、という因果」
秋田・石川・福井・富山がクラスター6で高得点だったのは事実(報告値)だが、著者自身「クラスター6がそもそも平均点の高い地域だったのでは」という仮説を検討しており、因果とは述べていない。
誤解4:「R²が0.5あれば十分よく当てはまっている」
著者は算数BのR²=0.5を「他のモデルと比べてあまり当てはまりが良くない」と評価している。R²の良し悪しは目的・比較対象しだいで、絶対的な基準はない。

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

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

K-means法(クラスタリング)
各データとクラスター中心との距離を比較し、近いクラスターへ割り当てる教師なし学習。本研究は地域特性で都道府県を8クラスターに分けた。
決定木(回帰木)
説明変数を二進分岐させて木を成長させる手法。目的変数が連続量なら回帰木。可読性が高く「何が効くか」を示せる。本研究はJMPで作成。
列の寄与(平方和)
決定木で、その変数が分岐によって減らした偏差平方和の合計。大きいほど目的変数の説明に効いている。
決定係数 R²
モデルが目的変数の分散をどれだけ説明できたかを0〜1で表す。本研究では算数Bで0.5、国語Aで0.63と報告。
AICc
モデルの当てはまりと複雑さのバランスを測る指標(小標本補正つきAIC)。本研究は分岐でAICcが最小になる点を成長のストップルールにした。
教師なし学習
正解ラベルを使わずデータの構造やまとまりを見つける機械学習。K-meansが該当する。
STEAM教育
STEM(科学・技術・工学・数学)に Art/Arts(芸術・人文)を加えた教育概念。本研究はその「A」を実データで問い直した。
SSDSE
教育用標準データセット。本研究はSSDSE-B/C/Dとe-Statを使用。本教材の再現はSSDSE-B(都道府県基礎データ)を用いる。

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

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

全体像
地域特性の変数をK-means法で類型化 → その所属クラスターを質的変数として、芸術・家庭・個人の変数とともに決定木(回帰木)に投入 → 教科別平均点を予測し、どの変数が効くかを「列の寄与」で読み解く。教師なし学習と決定木を組み合わせるのが見どころ。
🧭 K-means法(クラスタリング)
何をする
各データとk個のクラスター中心との距離を計算し、最も近い中心のクラスターへ割り当てる操作を繰り返す。似た地域が同じグループにまとまる。
注意
変数の単位差の影響を受けるため標準化が必須。クラスター数kの決め方に定石が少なく(本研究は立方クラスタリング基準)、結果がkに依存する。初期値依存もあるため複数回試す(n_init)。
🌳 決定木(回帰木)
何をする
目的変数(連続量)の偏差平方和を最も大きく減らす変数・しきい値で二分岐を繰り返す。木構造で「どの条件だと点数が高いか」を可読的に示す。
なぜ必要
多数の説明変数の中から「効く変数」を、非線形・交互作用込みで直感的に示せるため。
注意
過学習しやすいため成長のストップルール(本研究はAICc最小)や剪定が重要。R²の低いモデル(例:算数B=0.5)は解釈を控えめに。単一の木は不安定で、データが少し変わると分岐が変わりうる。
📉 決定係数 R² の読み方
何をする
モデルが目的変数のばらつきをどれだけ説明したかを0〜1で測る。本研究は国語A=0.63、算数B=0.5と報告。
注意
高ければ良いとは限らず、目的・比較対象しだい。著者は算数Bの0.5を「当てはまりが良くない」と評価しており、絶対基準ではないことを示している。

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

原論文が自ら挙げた限界は、次の研究の出発点になる。

発展1:文化資源の「内生性」を分離する
結果X
博物館・映画館数が学力に寄与したが、これは元々教育熱心・文化的需要のある地域であることの反映かもしれない。
新仮説Y
地域の所得・教育熱を統制しても文化資源の効果は残るのでは。
課題Z
操作変数法や傾向スコアなど因果推論の枠組みで、文化資源の効果を交絡から分離する(原論文が示唆した課題)。
発展2:STEAM教育の効用を測る新しい指標へ
結果X
従来の学力テストでは、STEAM教育が育む「新しい問題と答えを生み出す能力」を測りきれない。
新仮説Y
創造性・課題設定力を測る指標を目的変数にすれば、芸術の効用がより鮮明に出るのでは。
課題Z
創造性評価やパフォーマンス課題のデータを整備し、同じ枠組みで再分析する(原論文が明示した課題)。

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

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

★☆☆☆☆ 難易度1
別の年でK-meansを回す
読み込みの df_b['年度'] == 2023 を 2022 や 2020 に変えて、クラスター構成が年で変わるか確かめよう。
★★☆☆☆ 難易度2
クラスター数kを変える
K = 6 を 3 や 8(原論文と同じ)に変え、シルエット係数とクラスターの解釈しやすさがどう変わるか比べよう。
★★★☆☆ 難易度3
投入変数を入れ替える
FEATURES に別のSSDSE-B変数(例:待機児童数・進学率)を足し引きして、クラスターの中身がどう動くか観察しよう。原論文の変数選択の難しさが体感できる。
★★★★☆ 難易度4
エルボー法でkを選ぶ
kごとのinertia_(クラスター内平方和)を折れ線で描き、「肘」からkを選ぶ方法を試そう。シルエット係数と比べてどうか。
★★★★★ 難易度5
回帰木で連続量を予測する
sklearn.tree.DecisionTreeRegressor で、教養娯楽費率などを目的変数にした回帰木を作り、どの変数で分岐するか可視化しよう。原論文の手法を自分のデータで体験できる。
ヒント:from sklearn.tree import DecisionTreeRegressor, plot_tree; m=DecisionTreeRegressor(max_depth=3).fit(X,y); plot_tree(m)。過学習を防ぐためmax_depthを小さく。

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

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

Q. 結局、芸術は学力を上げるのですか?
A. 「上げる」とは言い切れません。本研究が示したのは、算数A(基礎)で「絵画・彫刻の制作」が最も寄与したなど、芸術・文化に関する変数が学力と関連していたという相関的な結果です。著者自身、因果関係は導けないと明記しています。
Q. なぜ美術館より博物館・映画館なのですか?
A. 決定木で寄与が大きかったのが美術館数(純粋芸術)より博物館数・映画館数(大衆的な文化)だったためです。著者は「提供される価値が自明で大衆的に親しまれるもの」=生活に根差した文化への関与が効いたのではと考察しています。
Q. このページの図は原論文と同じ数値ですか?
A. 一部だけ実再現です。図1(概念図)・図2・図3(決定木の寄与)は、全国学力調査の点数などがSSDSE-Bに無いため原論文の報告値を転記・可視化したもの。図4(K-means)・図5(教養娯楽費率)はSSDSE-Bで実際に計算しましたが、図4は投入変数が原論文と異なるためクラスターの中身は原論文と別物です。図注に明記しています。
Q. K-meansのクラスター数はどう決めるのですか?
A. 原論文は立方クラスタリング基準で8クラスターとしました。本ページの再現ではシルエット係数を実際に計算して示し、原論文の考え方に倣ってk=6を採用しています。kの決め方に唯一の正解はなく、指標と解釈しやすさのバランスで選びます。

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

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

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

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

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