日々の記録簿

日々のできごとの記録

PISA

RによるPISA Data Analysis Manualの再現(第10章: 学校の変数を扱う)

投稿日:

第7章(標準誤差の推定)第8章(PVs)、第9章(習熟度)に引き続き、PISA Data Analysis Manual SPSS 2nd Editionの分析を、Rで再現してみます。

今回は、学校の変数を扱う第10章です。

注意すること

PISAが調査対象とするのは、15歳の(学校に在籍している)子どもである。これは、調査対象が同一学年に在籍しているとは限らないということを意味する。

この理由には、主に

  • 15歳までに、子どもが留年する割合が高い
  • 留年制度がない場合でも、調査時点で15歳児が複数の学年に在籍している。多くの国で、15歳児はISCED 2(前期中等教育)とISCED 3(後期中等教育)に分かれて在籍している。

というものがある。

日本では、PISAの調査対象は100%が高1である。しかし、これは参加国の中ではかなり珍しいパターンであり、ほとんどの国は複数の学年が調査対象になっている。

それはともかく、PISAの調査対象は特定の年齢(15歳児)であり、特定の学年ではないということに注意しなければならない。

PISAの標本抽出では、15歳児が在籍していない学校は、そもそも抽出の対象にならない。つまり、同じ学校段階(ISCED 2)だったとしても、15歳児が在籍していれば抽出対象になるし、15歳児が在籍していなければ抽出対象にはならない。

その意味では、PISAを学校中心の視点で解釈することは誤った結論をもたらすかもしれない。PISAを分析する際は、あくまでも生徒データを中心に行う(≒学校データは生徒データに結合して分析する)必要がある。

学校データを生徒データに結合する

ここでは、PISA2006のドイツ(DEU)を対象に、学校データと生徒データを結合することを考える。

まず、ドイツの生徒・学校データは、spss.pyを使うことで取り出すことができる。

# PISA2006ドイツの生徒データを作成。ファイルは2006DEU.csvで作成される。
python spss.py INT_Stu06_SPSS_Dec07.sps INT_Stu06_Dec07.txt DEU 2006
# PISA2006ドイツの学校データを作成。ファイルは2006schDEU.csvで作成される。
python spss.py INT_Sch06_SPSS_Dec07.sps INT_Sch06_Dec07.txt DEU 2006sch

次に、R上で、これらのファイルを結合する。Rの場合、merge関数を使うのがかんたんである。

deu_stu <- read.csv("2006DEU.csv")
deu_sch <- read.csv("2006schDEU.csv")

# merge関数で結合する
deu2006 <- merge(deu_stu, deu_sch, by=c("SUBNATIO", "SCHOOLID", "CNT", "COUNTRY", "OECD", "STRATUM"))

学校の変数を扱う

ここでは、学校の場所(School Location: SC07Q01)について考えてみよう。例によって、intsvy packageで分析する。

library(intsvy)

# 欠損値をNAにする。
deu2006$SC07Q01[deu2006$SC07Q01 > 6] <- NA

# 度数分布。あくまで生徒を中心に解釈すること。Table 10.2
pisa.table("SC07Q01", data=deu2006)

# 成績の差。こちらもあくまで生徒が中心。Table 10.3
pisa.mean.pv(pvlabel="SCIE", by="SC07Q01", data=deu2006)

いずれもSPSSやSASによる出力を一致している。

スポンサーリンク

スポンサーリンク

-PISA

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

PISAの分析方法(お知らせ)

PISAデータの分析方法に関する資料を、githubにまとめることにしました。ぼちぼち追記していきますので、興味のある方はどうぞ。

RによるPISAの分析(データの準備その2)

RによるPISAの分析(データの準備)で公開したpythonコードですが、その後、PISA2000のspsファイルに対応していなかったとか、すべての国のデータをまとめて変換したほうが便利だとか、ファイ …

RによるPISAの分析(データの準備:続報)

三重大の奥村晴彦氏のホームページにて、RでPISAデータを読み込む方法(PISAデータを読む)が公開されていました。 こちらは、Rubyで読み込んでいるようです(ちなみに私はRubyはサッパリです・・ …

RによるPISAの分析(データの準備)

PISAをRで分析する際に、最初の壁になるのが、データファイルが大きすぎるという点でしょう。 すでに述べたように、PISAのデータは、(1)データが固定長のtxtファイルになっている、(2)参加国すべ …

PISA2015の分析方法とintsvyの使い方

Rのintsvy packageを使ってPISA2015を分析する方法です。 データの準備 まず、OECDのホームページからPISA2015のデータをダウンロードする。PISA2015からSPSSのデ …