日々の記録簿

日々のできごとの記録

TIMSS

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

投稿日:

RでPISAやTIMSSを分析するためのintsvy packageの使い方が大きく変わっていたので、その紹介。本当はだいぶ前に変わっていたのだと思うが、気づいていなかった・・・。

データの読込

ここではTIMSS2015(Grade 4)のデータを例にする。データは、TIMSS & PIRLSのウェブサイトからダウンロードすればよい。今回扱うのは、日本(JPN)を含む【T15_G4_SPSSData_pt2.zip (DNK-NLD 144MB)】のデータである。かなり時間がかかるので注意。ダウンロード後に解凍してJPNデータを取り出す。

以下、データの読込と結合。foreignとplyr packageを使う。havenだとバグがあるようでうまく取り込めなかった(2017年5月11日時点)。

library(foreign)
library(plyr)

# 教員データを使わない場合
jpfile <- c("ASGJPNM6.sav", "ASHJPNM6.sav", "ACGJPNM6.sav")
dat <- lapply(jpfile, function(x) {
                read.spss(x, to.data.frame = TRUE, use.value.labels = FALSE)
})
jpn <- join_all(dat); rm(dat)

# 教員データを使う場合
# 結合の順序に注意!ASGが児童生徒、ATGが教員、ASTがリンクファイル。ASG→AST→ATGの順に並べないとうまく結合できない。
jpfile2 <- c(jpfile, "ASTJPNM6.sav", "ATGJPNM6.sav")
dat2 <- lapply(jpfile2, function(x) {
                 read.spss(x, to.data.frame = TRUE, use.value.labels = FALSE)
})
jpn2 <- join_all(dat2); rm(dat2)

intsvyによる分析

TIMSSの厄介なところは、教員データを使わない場合と使う場合で、分析に使用するweightが変わる(前者はTOTWGTで、後者はTCHWGT)という点である。intsvyに用意されているPVsを扱う関数(timss.mean.pv等)はデフォルトでTOTWGTを使うように設定されており、TCHWGTに変更することはできない(以前のバージョンではweightを選ぶことができた)。

現在のバージョンでは、代わりにintsvy関数のconfig引数でweightを指定する。具体的な操作法は、次のとおり。

library(intsvy)

# 教員データを使わない場合
timss.mean.pv(pvlabel = "ASSSCI", data = jpn)

# 教員データを使う場合
timss4_conf$variables$weight <- "TCHWGT"
intsvy.mean.pv(pvnames = paste0("ASSSCI0", 1:5),
               data = jpn2, config = timss4_conf)

config(今回はtimss4_conf)の値をいろいろ操作することで分析を変更するのが、現在のintsvyの流儀らしい。ちなみに、デフォルトのままだと教員データに対してもTOTWGTが使われるので、教員データを使わない場合の計算結果と食い違ってしまう。

スポンサーリンク

スポンサーリンク

-TIMSS

執筆者:


  1. orange より:

    いつもさくらさんを参考にさせていただいています。
    現在,TIMSSの2011年と2015年の調査でRを使った分析をしています。
    そこで,児童・生徒と教員のリンクデータを作るところまではできたのですが,このデータでは,児童・生徒の人数がもとの人数よりも多くなってしまっています。その後,weightをかける操作をしなければいけないということのようですが,そのRの操作の仕方やスクリプトの打ち方がわかりません。
    何かアドバイスをいただけたら幸いです。

comment

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

関連記事

TIMSS報告書で標準誤差はどのように計算されているのか?

TIMSS報告書の標準誤差(PVsを使った場合)は、正規の式による計算ではなく、ショートカット計算になっています。 TIMSSを使った分析をしていて、報告書と数値が合わない・・・となった方の参考になる …

TIMSSで教員データを使うとサンプルサイズが増えるのはなぜなのか?

11月ころにコメントで質問をいただいていたようで、その解説です。これだけ間が空くと、質問者は既に解決済みかもしれませんが・・・。 TIMSSで教員データを使うとサンプルサイズが増える?! TIMSSで …

TIMSS2011から公立中学校と国・私立中学校の成績差を見てみる

タイトルのとおりですが、TIMSS2011を利用して、国・私立中学校と公立中学校の成績差を見てみます。 とりあえず、平均点の差を検討する TIMSS2011の学校質問紙や生徒質問紙では、生徒が通ってい …

RによるTIMSS2011の分析(survey packageを使う)

RでTIMSSを分析するときは、intsvy packageが便利です。ただ、簡単すぎて内部で何をやっているのかわからない/可能な分析方法が少なく応用が効かないというデメリットもあります。 そこで今回 …

TIMSS2011の公開データ

すぐに忘れるので、TIMSS2011の公開データの取得方法や場所についてメモしておきます。 データの取得方法 TIMSS 2011 International Database からダウンロードできる …