Rを使った分析(ラッシュ・モデル)

■ 分析前にやっておくこと

(1) Rのインストール
(2) 作業ディレクトリの確認と変更をしておく
(3) 作業ディレクトリにデータを入れておく
(4) 必要なパッケージをインストールしておく

 


データの読み込み

書籍使用データ(右クリックで「別名で保存」して作業ディレクトリに入れる)

dat <- read.csv("ch15rasch.csv", header=TRUE, fileEncoding="CP932")
# fileEncoding="CP932"はMacの場合入れる
dat <- dat[,-1]   #ID以外の列を対象にする

もしくは,Excel を開いてデータ範囲をコピーしてから読み込む
(クリップボードからのデータ読み込み)

Macの場合

dat <- read.table(pipe("pbpaste"), header=TRUE)  
#header=TRUEで変数名を含む,FALSEにすると含まない

Windowsの場合

dat <- read.table("clipboard", header=TRUE) 
#header=TRUEで変数名を含む,FALSEにすると含まない

 

合計点の計算と記述統計

total <- apply(dat, 1, sum)  # 1 は行を対象という指示
total           # 合計点

library(psych)  # psychパッケージ使用
describe(total) # 記述統計

その他の記述統計はこちらを参照

 

古典的テスト理論(信頼性係数や項目困難度)

library(CTT)  # 古典的テスト理論CTTパッケージを使用
ctt <- reliability(dat, itemal = TRUE, NA.Delete = TRUE)
ctt     #クロンバックのアルファ
ctt[4]  # 平均
ctt[5]  # 標準偏差
ctt[6]  # 項目が削除された場合のアルファ
ctt[7]  # 項目-全体得点相関係数
ctt[8]  # 正答率(項目困難度)

 

ラッシュ・モデルによる分析実行

library(eRm)    # eRmパッケージを使用
res <- RM(dat)  # ラッシュモデルで項目難度と能力値を推定
summary(res)    # 項目難度
# Q1はItem Easiness Parameters (beta) with 0.95 CI:の
# beta Q01の±を逆にして確認

p.res <- person.parameter(res)
print(p.res)    # 素点と能力値の比較
summary(p.res)  # 能力値
plot(p.res)     # 素点と能力値の関係をプロット

※ 母数推定の方法が違うため,Winsteps で分析した結果とは若干数値が異なる。

 

フィットの確認

#Item fit
itemfit(p.res)

#Person fit
personfit(p.res)

 

可視化

# Person-Item Map(ラッシュ・モデルで最もよく使われる)
res <- PCM(dat)
plotPImap(res, sorted=TRUE)

# Pathway Map (Bond & Fox, 2001, 2007 参照)
res <- PCM(dat)
pparm <- person.parameter(res)
plotPWmap(res, pp=pparm)
plotPWmap(res, pp=pparm, pmap=TRUE)

# Item characteristic curves (ICC) Plot
library(ltm)  # ltmパッケージを使用  
plot.rasch(rasch(dat))

※ eRm パッケージにも plotICC(res) があるが,あまり美しくない。
(参考)Rで項目反応理論

Person-Item Map

Pathway Map

ICC Plot