日々の記録簿

日々のできごとの記録

TIMSS

RによるTIMSS2011の分析(学校・教員ファイルを使う)

投稿日:

RによるTIMSS2011の分析方法(その2)です。今回は、学校・教員ファイルを使った分析を行います。

データの読み込み

RによるTIMSSの分析を可能にするため、例によってintsvy packageを利用する。

ここでは、日本のTIMSS2011を例にとる。分析に使用するデータは、asgjpm5.sav(児童質問紙), acgjpm5.sav(学校質問紙), astjpnm5.sav(児童・教員リンクファイル), atgjpnm5.sav(教員質問紙)である。

# intsvy packageを使うと、read.spss関数は使用可能になるため、library(foreign)は不要。
library(intsvy) 
library(car) # 後の分析で使う

jp11stu <- read.spss("asgjpnm5.sav", use.value.labels=F, to.data.frame=T, use.missing=T)
jp11sch <- read.spss("acgjpnm5.sav", use.value.labels=F, to.data.frame=T, use.missing=T)
jp11lin <- read.spss("astjpnm5.sav", use.value.labels=F, to.data.frame=T, use.missing=T)
jp11tea <- read.spss("atgjpnm5.sav", use.value.labels=F, to.data.frame=T, use.missing=T)

データの結合

TIMSSは、基本的には、学校/教室という2段階抽出法を利用している。注意が必要なのは、TIMSSの教員質問紙は「調査対象となった児童・生徒に算数(数学)・理科を教えている教員」が対象になっているという点である。

第一の注意点は、TIMSSでは教員が無作為に抽出されていないという点である。教員質問紙は、常に児童・生徒を中心に解釈しなければならない。

TIMSSでは、「第4学年の教員のうち、教員経験20年以上の教員が○割である」という分析はできない。できるのは、「教員経験20年以上の教員に教えられている第4学年の児童の割合は、第4学年の児童のうち○割である」という分析である。

第二の注意点は、必ずしも児童・学級と教員が1対1で対応しているわけではないという点である。複数の教員が同一のクラスを教えている場合、1学級に複数の教員が対応するケースがある。

TIMSSでは、児童(生徒)・教員リンクファイルと、教員weightを使うことで、このことを再現している。教員質問紙を使って分析を行う場合は、必ず教員weight(TCHWGT, MATWGT, SCIWGT)のいずれかを使用しなければならない。intsvyのデフォルトは、児童・生徒weight(TOTWGT)なので、分析時には注意が必要である。

以下では、学校質問紙を使う場合のデータ結合(jp11SCH)、児童・教員・学校質問紙を使う場合のデータ結合(jp11TEA)、教員質問紙を使う場合のデータ結合(jp11TEA2)の三種類の結合方法を示す。

教員質問紙のみに興味があるというケースは少ないと思うので、現実的には、jp11SCHかjp11TEAのいずれかを使用することになるだろう。

# 児童・学校質問紙を利用する場合
jp11SCH <- merge(jp11stu, jp11sch, by=c("IDCNTRY", "IDSCHOOL", "IDGRADE","IDPOP",
                                     "IDGRADER","IDSTRATE","IDSTRATI","WGTADJ1",
                                     "WGTFAC1","DPCDATE"))

# 児童・教員・学校質問紙を利用する場合
jp11LIN <- merge(jp11stu, jp11lin, by=c("IDCNTRY", "IDBOOK","IDSCHOOL","IDCLASS","IDSTUD",
                                        "IDGRADE","IDPOP","IDGRADER","IDSTRATE","IDSTRATI",
                                        "TOTWGT","JKZONE","JKREP",
                                        "ASMMAT01","ASMMAT02","ASMMAT03","ASMMAT04","ASMMAT05",
                                        "ASSSCI01","ASSSCI02","ASSSCI03","ASSSCI04","ASSSCI05",
                                        "ASMDAT01","ASMDAT02","ASMDAT03","ASMDAT04","ASMDAT05",
                                        "ASMGEO01","ASMGEO02","ASMGEO03","ASMGEO04","ASMGEO05",
                                        "ASMNUM01","ASMNUM02","ASMNUM03","ASMNUM04","ASMNUM05",
                                        "ASSEAR01","ASSEAR02","ASSEAR03","ASSEAR04","ASSEAR05",
                                        "ASSLIF01","ASSLIF02","ASSLIF03","ASSLIF04","ASSLIF05",
                                        "ASSPHY01","ASSPHY02","ASSPHY03","ASSPHY04","ASSPHY05",
                                        "ASMKNO01","ASMKNO02","ASMKNO03","ASMKNO04","ASMKNO05",
                                        "ASMAPP01","ASMAPP02","ASMAPP03","ASMAPP04","ASMAPP05",
                                        "ASMREA01","ASMREA02","ASMREA03","ASMREA04","ASMREA05",
                                        "ASSKNO01","ASSKNO02","ASSKNO03","ASSKNO04","ASSKNO05",
                                        "ASSAPP01","ASSAPP02","ASSAPP03","ASSAPP04","ASSAPP05",
                                        "ASSREA01","ASSREA02","ASSREA03","ASSREA04","ASSREA05",
                                        "ASMIBM01","ASMIBM02","ASMIBM03","ASMIBM04","ASMIBM05",
                                        "ASSIBM01","ASSIBM02","ASSIBM03","ASSIBM04","ASSIBM05",
                                        "DPCDATE" ))
jp11LIN2 <- merge(jp11LIN, jp11tea, by=c("IDCNTRY","IDSCHOOL","ITCOURSE","IDTEACH","IDTEALIN",
                                         "IDLINK","IDPOP","IDGRADE","IDGRADER","IDSUBJ",
                                         "DPCDATE"))
jp11TEA <- merge(jp11LIN2, jp11sch, by=c("IDCNTRY", "IDSCHOOL", "IDGRADE","IDPOP",
                                         "IDGRADER","IDSTRATE","IDSTRATI","WGTADJ1",
                                         "WGTFAC1","DPCDATE"))

# 教員質問紙を利用する場合
jp11TEA2 <- merge(jp11lin, jp11tea, by=c("IDCNTRY","IDSCHOOL","ITCOURSE","IDTEACH","IDTEALIN",
                                         "IDLINK","IDPOP","IDGRADE","IDGRADER","IDSUBJ",
                                         "DPCDATE"))

# 不要になったデータフレームを除去
rm(jp11stu, jp11sch, jp11lin, jp11tea, jp11LIN, jp11LIN2)

intsvyによる分析

学校質問紙を利用する

学校質問紙を利用する場合は、jp11SCHを使って分析すると良い。weightはデフォルトのまま(TOTWGT)。

ここでは、TIMSS2011のMathematics Results(pdf)のうち、表5.1 学校の場所と成績の関連(p.208)の数値を再現することを目指す。

jp11SCH$location <- recode(jp11SCH$ACBG05A, "1:2=1; 3:4=2; 5:6=3")
timss.table(variable="location", data=jp11SCH)
timss.mean.pv(pvlabel="ASMMAT", by="location", data=jp11SCH)

教員質問紙を利用する

教員質問紙を利用する場合は、jp11TEA, jp11TEA2のいずれかを使う。weightは分析する教科に合わせて設定しなければならない。算数・数学ならMATWGT、理科ならSCIWGTである。

ここでは、TIMSS2011のMathematics Results(pdf)のうち、表7.5 教員経験年数と成績の関連(p.294)の数値を再現することを目指す。

# weightの使い方。算数の得点(ASMMAT)を従属変数とする場合
timss.mean.pv(pvlabel="ASMMAT", data=jp11SCH) # jp11SCHを使うとき
timss.mean.pv(pvlabel="ASMMAT", data=jp11TEA, weight="MATWGT") # jp11TEAを使うとき
timss.mean.pv(pvlabel="ASMMAT", data=jp11TEA) # weightを間違えると推定値が狂う

# 表7.5の再現
jp11TEA$career <- recode(jp11TEA$ATBG01, "1:4=1; 5:9=2; 10:19=3; 20:50=4")
timss.table(variable="career", data=jp11TEA, weight="MATWGT")
timss.mean.pv(pvlabel="ASMMAT", by="career", data=jp11TEA, weight="MATWGT")

# jp11TEA2でもOK
jp11TEA2$career <- recode(jp11TEA2$ATBG01, "1:4=1; 5:9=2; 10:19=3; 20:50=4")
timss.table(variable="career", data=jp11TEA2, weight="MATWGT")
timss.mean.pv(pvlabel="ASMMAT", by="career", data=jp11TEA2, weight="MATWGT")

いずれの結果も報告書のものと一致している。

スポンサーリンク

スポンサーリンク

-TIMSS

執筆者:


comment

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

関連記事

RによるTIMSS2011の分析

RによるTIMSS2011の分析方法です。 データの読み込み SPSSデータを読み込むために、foreign packageを読み込みます。 また、RによるTIMSSの分析を可能にするため、intsv …

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

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

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

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

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

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

TIMSS2011のTechnical Report

TIMSS2011のTechnical Reportに関するまとめです。量が多いので、要点のみ箇条書きしています。 全文は、Methods and Procedures in TIMSS and PI …