日々の記録簿

日々のできごとの記録

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

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

関連記事

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

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

RによるPISA Data Analysis Manualの再現(第8章: PVsを使う)

前回に引き続き、PISA Data Analysis Manual SPSS 2nd Editionの分析を、Rで再現してみます。 今回は、PVs(Plausible Values: 推算値法)に関わ …

RによるPISAの分析(PISAデータをCSVに変換する)

PISAデータをcsvに変換する作業が面倒になってきたので、以前紹介していたpythonスクリプトを書き直し、全自動で行えるようにしました。 ここからpisacsv.zipをダウンロードし、展開してく …

RによるPISA Data Analysis Manualの再現(第7章: 標準誤差の推定)

学力調査の基本を勉強する上で大変参考になる、PISA Data Analysis Manual SPSS 2nd Editionの分析を、Rで再現してみます。 今回は、標準誤差の推定に関わる第7章を扱 …

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

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