COLOR(red){SIZE(30){Rで項目反応理論}}

#contents

*パッケージ [#s5504cb5]
-[[ltm(潜在特性モデル)パッケージ中のオブジェクト一覧]]

次のパッケージにも助けてもらっている。
--MASS
--msm
--mvtnorm
--polycor ->[[polycorパッケージによる順序相関係数の算出]]
--sfsmisc

*使用方法 [#hcb69bb5]
**パッケージのロード [#t88cbb2c]
 library(ltm)

このコマンドで、自動的に要求される他パッケージもロードされる。

**polychoric相関係数などで一次元性の確認 [#s4322182]
**1母数モデル [#i897802c]
 rasch(data)
**2母数モデル [#pd300b47]
 ltm(data~z1)
**3母数モデル [#aa6d4336]
 tpm(data)
**段階反応モデル [#k11f7fbc]
 grm(data)
**ICCのプロット [#w7df02de]
result <- rasch(data)、のように結果をresultオブジェクトに渡したとして、
***1母数モデルの場合 [#r57894c9]
 plot.rasch(result)
***2母数モデルの場合 [#t2d9151e]
 plot.ltm(result)
***3母数モデルの場合 [#r776aee6]
 plot.tpm(result)
**IIC/TICのプロット [#h231df5b]
***IICの場合 [#a9c89d6e]
 plot(result, type = "IIC")
とくにある変数について描画したい場合は、itemsで指定する。
 plot(result, type= "IIC", items=1)
上の例は、一番目の変数についてのIICを描画する。複数の変数を合わせて描画する際は、
 plot(result, type="IIC", items=c(1, 2))
のようにする。
***TICの場合 [#z362f42e]
TICは全ての変数についてのIICの総和である。描画については、itemsオプションを0に指定すればよい。
 plot(result, type="IIC", items=0)

**スコアの算出 [#zee51667]
ltm関数などで推定したパラメタをもちいて、能力値を推定するには、factor.scores()関数を使う。
 result <- ltm(data ~ z1, IRT.param=TRUE)
 factor.scores(result)
このようにすると、観測された全ての反応パターンについての能力値が算出される。推定方法はmethodオプションで、ベイズ、EAP、MIから選択できる。

回答者毎の能力値が必要な場合は、resp.patternオプションで反応パターンデータを引き渡す。
 factor.scores(result, resp.pattern=data)
これで一人ずつの能力値を得ることができる。

*実行例 [#d59e9259]
豊田秀樹(2002)の「項目反応理論(入門編)」に用いられたデータが、豊田研究室のサイトからダウンロードできるので、それをc:\tempに保存したとして実行例を示す。

まずはデータの読み込みである。
 data <- read.fwf("c:/temp/gaku1.txt", widths=rep(1, 50))
もとのデータが50列×226行のデータなので、一列ずつ反応として読み込む。

中でもいくつかの変数だけ分析の対象とするので、新たにデータセットを作成。

 data2 <-  subset(data,select=c("V2","V6","V7","V8","V11","V12","V14","V15","V16","V17",
 "V18","V19","V20","V21","V22","V23","V24","V25","V26","V29",
 "V30","V32","V33","V34","V35","V38","V40","V44","V46","V49"))

1母数モデルを実行してみる。
 rasch(data2)
結果は次の通り。

 Call:
 rasch(data = data2)
 Coefficients:
  Dffclt.V2   Dffclt.V6   Dffclt.V7   Dffclt.V8  Dffclt.V11  Dffclt.V12  
     -1.221      -1.064      -2.165      -1.824      -0.493      -1.534  
 Dffclt.V14  Dffclt.V15  Dffclt.V16  Dffclt.V17  Dffclt.V18  Dffclt.V19  
     -1.932       0.594      -2.007      -1.331      -1.387      -2.436  
 Dffclt.V20  Dffclt.V21  Dffclt.V22  Dffclt.V23  Dffclt.V24  Dffclt.V25  
     -2.387      -0.939      -0.988      -0.249       0.412       0.855  
 Dffclt.V26  Dffclt.V29  Dffclt.V30  Dffclt.V32  Dffclt.V33  Dffclt.V34  
     -1.168       0.146      -0.607      -0.939      -0.095      -0.139  
 Dffclt.V35  Dffclt.V38  Dffclt.V40  Dffclt.V44  Dffclt.V46  Dffclt.V49  
     -2.124       1.441       0.548       0.345       0.830      -0.939  
     Dscrmn  
      0.973  
 Log.Lik: -3647.655

ltmではロジスティックモデルの定数項を1.0で推定するが、BILOG-MGなどでは一般にD=1.702で算出する。例えば豊田(2002)では識別力が0.574とあるが、ここでは0.973と推定される。結果を合わせるためには、識別力の推定値を1.7で割ればよい。

2母数モデルを実行してみる。
  ans <- ltm(data2 ~ z1)
結果は次の通り。
 Call:
 ltm(formula = data2 ~ z1)
 Coefficients:
      Dffclt  Dscrmn
 V2   -1.470   0.762
 V6   -1.711   0.539
 V7   -1.965   1.113
 V8   -1.698   1.077
 V11  -0.691   0.629
 V12  -1.449   1.057
 V14  -1.530   1.383
 V15   0.600   0.946
 V16  -1.570   1.409
 V17  -1.503   0.827
 V18  -1.655   0.772
 V19  -1.544   2.109
 V20  -1.762   1.545
 V21  -0.902   1.039
 V22  -0.902   1.123
 V23  -0.227   1.210
 V24   0.365   1.113
 V25   0.851   0.970
 V26  -1.187   0.955
 V29   0.199   0.655
 V30  -0.526   1.247
 V32  -0.826   1.195
 V33  -0.092   1.429
 V34  -0.157   0.853
 V35  -2.041   1.027
 V38   1.888   0.687
 V40   0.494   1.100
 V44   0.535   0.566
 V46   0.779   1.052
 V49  -0.932   0.989
 Log.Lik: -3625.593

ICCを画いてみた。
 plot.ltm(ans)
#ref(ltmIcc.png)

回答者毎の能力値を算出する。
 factor.scores(ans, resp.pattern=data2)
結果の一部
 Factor-Scores for observed response patterns:
     V2 V6 ... V49 Obs   Exp     z1 se.z1
 1    0  0  ... 0   1 0.000  0.810 0.446
 2    0  0  ... 0   1 0.001 -0.623 0.361
 3    0  0  ... 0   1 0.000 -0.215 0.377
 ...

*リンク [#o6676f75]
-[[R-Wiki:http://rwiki.sciviews.org/doku.php?id=packages:cran:ltm]] サンプル多数
-[[項目反応理論[入門編](第2版):http://www.asakura.co.jp/books/isbn/978-4-254-12795-9/]]
-[[Item Response Theory: Developing Your Intuition:http://joelcadwell.blogspot.jp/2012/09/item-response-theory-developing-your.html]]

*ログ [#f66ee726]
アクセス数:
&counter;
人

----
*コメント [#zb45ca49]

- 実行例等々、順次更新していく予定です。分かる人があれば追加・編集してください。 -- [[Kosugitti]] &new{2008-11-27 (木) 11:19:02};
- 豊田(2002)ではBILOG-MGで推定しているようですが、どうもRの結果とマッチしません?? -- [[Kosugitti]] &new{2008-11-28 (金) 18:29:03};
- 識別力は、0.574×1.702では? -- [[oyoyo]] &new{2008-12-01 (月) 17:51:10};
- たしかにD=1.0で推定されているようです。服部先生のAPLEで係数を算出したところ、D=1.0の係数とほぼ一致しました。1.7で割ればいいんですね、ご指導ありがとうございました!。 -- [[Kosugitti]] &new{2008-12-01 (月) 18:14:34};
- 細かいことですがV22が抜けているのでは? --  &new{2008-12-02 (火) 14:32:21};
- 抜けてました!訂正しました。ご指摘ありがとうございます。 -- [[Kosugitti]] &new{2008-12-12 (金) 09:38:49};
- 因子得点の結果のところの, Obs,Exp, z1,se.z1の4つが何かわかりません。よかったら教えてください -- [[tetetete]] &new{2009-01-21 (水) 13:40:58};
- Obsは観測度数、EXPは観測度数の期待値、z1は推定されたスコア、se.z1は推定されたスコアの標準誤差です。  -- [[Kosugitti]] &new{2009-01-29 (木) 15:28:09};
- ありがとうございました!広島から参考にさせてもらいました -- [[tetetete]] &new{2009-01-31 (土) 21:43:20};
- http://irtanalysis.main.jp/にて,RとBILOG-MGとEasyEstimationの比較記事を掲載してみました。 -- [[irtanalysis]] &new{2009-04-14 (火) 16:53:43};
- 2012年9月に豊田(2002)をRで書きなおした本を第2版として出版します。 -- [[豊田秀樹]] &new{2012-07-09 (月) 07:47:45};
- tpmにcの値は指定できないのでしょうか?5択の問題に使いたいのでc=0.2にしたいです.よろしくお願いします. -- [[tako]] &new{2012-07-10 (火) 12:05:17};
- パラメタの指定はcontraintオプションでできますよ。ヘルプ参照。 -- [[Kosugitti]] &new{2012-07-18 (水) 09:49:24};
- 項目の困難度、識別力の標準誤差の算出方法をご存知の方いらっしゃいますか? -- [[TT]] &new{2014-01-17 (金) 14:38:18};
- 推定の方法は何を使っていますか? -- [[fuku]] &new{2019-06-18 (火) 10:46:20};
- 推定の方法は何を使っていますか? -- [[fuku]] &new{2019-06-18 (火) 10:57:39};
- 推定の方法は何を使っていますか? -- [[fuku]] &new{2019-06-18 (火) 10:57:41};
- theta値の推定のことですかね?デフォルトはEB(経験ベイズ)なので,経験的に求めた事後分布の平均と分散を利用したEAPだと思います。たぶんMAPのアルゴリズムは搭載されていないかと。 -- [[takuizum]] &new{2019-07-08 (月) 16:57:34};
- 識別力は結局1.7で割るんですか?1.7をかけるんですか? -- [[fuku]] &new{2019-08-12 (月) 20:55:14};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS