0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【教育データ分析】PISA学校質問票から見える学校タイプとは?

0
Last updated at Posted at 2026-04-25

PISA学校質問票データを用いた学校タイプ分類(PCA+クラスタリング)

PISA(OECD学習到達度調査)には、生徒質問票だけでなく「学校質問票(School Questionnaire)」が存在します。
学校の設備、ICT環境、教員配置、規律、運営方針など、学校レベルの特徴が非常に多く含まれており、教育データ分析の素材としてとても興味深いデータです。

今回は PISA 2022 の学校質問票データを用いて、
・学校の特徴を PCA(主成分分析)で可視化し、
・KMeans によるクラスタリングで学校を分類し、
・PC1×PC2 の4象限で学校タイプを整理する
という探索的分析を行いました。


1. データの準備

1-1. データの入手方法

PISA データは OECD の公式サイトからダウンロードできます。

1-2. 使用データ

  • PISA School Questionnaire(学校質問票)
  • 形式:.sav(SPSS)
  • 分析単位:学校

1-3. SPSS(.sav)ファイルの読み込み

PISA の学校質問票は .sav 形式で提供されており、
Python では pyreadstat を使って読み込みます。

import pyreadstat

# 日本の学校データを抽出
df, meta = pyreadstat.read_sav("CY07_MSU_SCH_QQQ.sav")
df_school = df[df["CNT"] == "JPN"].copy()

# 分析の効率化のため CSV に保存
df_school.to_csv("df_school.csv", index=False)

# 以降の分析は CSV を読み込んで実行
df_school = pd.read_csv("df_school.csv")

変数ラベル(メタデータ)は JSON に保存しておくと便利です。
※※
.sav ファイルを pyreadstat で読み込んだ後、日本の学校データ(df_school)を抽出し、分析の効率化と再現性確保のために CSV 形式で保存しています。

CSV に変換すると SPSS の value labels(Likert 尺度の順序情報)や欠損値コードが失われるため、分析時には語彙パターンから Likert 項目を再判定し、マッピング(likert_map)で順序尺度を復元しています。
この処理により、.sav のラベル情報がなくても同じ尺度構造を再現でき、分析結果の再現性を確保しています。

2. 前処理

学校質問票は Yes/No、Likert 尺度、カテゴリ変数などが混在しており、
欠損も一定数存在します。

今回の前処理方針は以下の通りです。
・欠損値のあるカラムは削除
・Yes/No 以外のカテゴリ変数を使用
・Likert 尺度と名義尺度を分けてエンコード

Qiitaでは概要のみ記載し、詳細コードは GitHub に掲載しています。

3. PCA(主成分分析)による次元削減

前処理後のデータは 87項目あり、
そのままでは学校間の違いが見えにくいため PCA を実施しました。

3-1. PCA の実行(8次元に圧縮)

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

X = StandardScaler().fit_transform(df_all)

pca = PCA(n_components=8, random_state=42)
X_pca = pca.fit_transform(X)

3-2. 累積寄与率

累積寄与率.jpg

8次元で約 50% 程度の情報を保持しています。
教育データは学校の多様性を反映しており、少数の主成分で大部分を説明することが難しい領域です。そのため、50%前後の寄与率は自然だと思われます。

4. クラスタリング(KMeans)

4-1. k の決定(エルボー法・シルエット法)

・エルボー法:k=3〜4 が妥当(微妙だが...)
エルボー法.jpg

・シルエットスコア:k=3 と k=4 はほぼ同程度(これも微妙だが...)
Silhouette Score (3 clusters): 0.1458264
Silhouette Score (4 clusters): 0.1453513
散布図の分離度を踏まえ、k=3 を採用しました。

4-2. KMeans の実行

from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=3, random_state=42)
clusters = kmeans.fit_predict(X_pca)

5. バイプロット(PC1・PC2 の解釈)

PC1・PC2 の因子負荷量をもとに、
主成分がどのような意味を持つかを解釈します。

バイプロット図.jpg

PC1(横軸):学校リソースの豊富さ
右側(+):
・ICT・デジタル機器が充実(SC155系)
・教員数が多い(TOTAT)
・私立学校が多い(SC016系)
左側(−):
・教材不足・設備不足(EDUSHORT、SC017系)
・職員不足(STAFFSHORT)
・公立学校が多い(SC016系)
➡ 「学校の物的・人的リソースの豊富さ vs 不足」

PC2(縦軸):規律・行動管理の良好さ
上側(+):
・生徒行動が良好(SC061系)
・教師行動が良好(SC061系)
・欠席・サボりが少ない(SC061系)
下側(−):
・無断欠席・サボり(SC061系)
・授業への集中不足(SC061系)
・教員不足・補助員不足(TOTAT、STAFFSHORT)
➡ 「学校の規律・行動管理の良好さ vs 課題の多さ」

6. PC1×PC2 による学校タイプ分類(4象限)

クラスタリング結果を PC1・PC2 平面に投影し、
4象限で学校タイプを分類しました。

クラスタリング3_改定.jpg

第1象限(右上):先進的・安定型(High-resource & Well-managed)
・ICT・設備が充実
・規律・行動管理が良好
・私立普通科が相対的に多く分布する傾向
➡ 教育活動を安定的に展開しやすい環境にある学校群

第2象限(左上):伝統的・秩序型(Low-resource & Well-managed)
・設備は不足気味だが規律は良好
・公立普通科が比較的多く分布する傾向
➡ 安定した運営が行われている一方、ICT 投資など改善余地も見られる学校群

第3象限(左下):課題集中型(Low-resource & Challenges in management)
・資源不足・設備不足
・教員不足
・規律に課題
・公立専門高校が相対的に多く分布する傾向
➡ 複合的な支援ニーズが示唆される学校群

第4象限(右下):潜在力高いが統制不足型(High-resource & Challenges in management)
・リソースは豊富
・しかし規律に課題
・私立普通科・専門高校が相対的に多く分布する傾向
➡ リソースを活かしきるための運営改善が期待される学校群

本記事の分類は、特定の学校種別や学校の価値判断・優劣を示すものではありません。あくまで相対的な分布傾向として解釈しています。

7. まとめ

・PCA により学校の特徴を「リソース」「規律」の2軸で整理できた
・KMeans により 3 つの学校群が確認できた
・4象限で学校タイプを分類すると、教育政策的な示唆が得られる

8. GitHub(Notebook)

前処理・可視化・バイプロットなどの
全コード(Jupyter Notebook)はこちら:
https://github.com/Goki-0324/PISA-2022-School-Questionnaire-Analysis/tree/main

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?