Rによる項目反応理論 を学習した記録です。
テスト理論の数理から実践まで、行間を省かずに丁寧に書かれたテキストです。
テスト理論には、

  • CTT(classical test theory:古典的テスト理論).
  • IRT(item response theory:項目反応理論).

があります。古典的テスト理論も、今なお重要な役割を担っています。

1 項目反応とテスト得点.

  • 項目反応パタンCTT(item response pattern).
  • 項目反応パタン行列(p56).
    \(j\)列は項目\(j\)に対する\(I\)人の項目反応 (\(i=1,2,\cdots,I\)) .

2 標準得点と偏差値.

  • 正答数得点(number right score)を用いる.
  • 得点は標準化し偏差値を用いる.

3 項目を評価する指標.

  • CTTにおける項目困難度は,項目に対する正答率として定義される。
  • CTTにおける項目識別力は,項目得点とテスト得点の相関係数として定義される.
    ( I-T相関 item-total correlation ,あるいは点双列相関係数として求められる) 

4 テストの信頼性.

信頼性係数 (reliability coefficient).
  https://clover.fcg.world/2016/05/09/4343/.
  https://clover.fcg.world/2016/05/09/4337/.

モデルを.
   \(y=t+e\)  (テスト得点を得点の真値で回帰、eは誤差)とすると.
   \(\sigma_y^2=\sigma_t^2+\sigma_e^2\) (テスト得点の変動=得点の真値の変動+誤差変動)

 信頼性係数 = 真の得点の分散÷観測得点の分散.
 観測得点と真の得点との相関係数の2乗(信頼性指数の2乗).

信頼性係数(reliability coefficient)とは、真の得点の分散の観測得点の分散に対する比。
相関係数の2乗であり、「決定係数(=説明率)」に相当する。
   \(\rho=\dfrac{\sigma_t^2}{\sigma_y^2}=1-\dfrac{\sigma_e^2}{\sigma_y^2}\) (決定係数:説明率)
    信頼性係数は、テスト得点を真値で回帰したときの決定係数と言える。

SEM(測定値の標準誤差) (standeerd error of measurement).
\(\sigma_e=\sigma_y~\sqrt{1-\rho}\) であるので、
   \(SEM~:~s_e=s_y~\sqrt{1-\hat{\rho}}\)
   また、\(SEM=\dfrac{1}{\sqrt{I(\theta_i)}}\) (フィッシャー情報量の平方根の逆数)となっている。
情報量が多ければ誤差が小さく、精度の良い推定となる。    

クロンバックのアルファ係数
   \(\alpha = \frac{J}{J-1} \left(1 - \frac{\sum_{j = 1}^J{{s_j}^2}}{{s_y}^2} \right)\)
統計検定2022人文④を参照、6章も参照.
[参考サイト] 文科省によるテスト分析 

α係数が高ければ,項目間の相関係数が高く,内的一貫性が高い.

5 RによるCTT分析.

5.1 10項目 20人分のテストデータ.

test<-read.csv("data/testeg.csv",header=T)
head(test)
subject q1 q2 q3 q4 q5 q6 q7 q8 q9 q10
Hasegawa 1 1 1 1 1 1 1 1 1 1
Honda 1 1 1 1 1 1 1 0 0 1
Uchikawa 1 1 1 1 1 1 1 1 0 1
Matsuda 1 1 1 1 1 1 1 1 1 1
LaHair 1 1 1 1 1 1 1 1 0 1
Yanagita 1 1 1 1 1 1 1 1 0 1

・テスト得点 score

test$score <- rowSums(test[,2:11])
(test.mean <- mean(test$score))
## [1] 6.55
(test.var <- 19/20*var(test$score))
## [1] 5.3475
(test.sd <- sqrt(19/20*var(test$score)))
## [1] 2.312466
head(test)
subject q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 score
Hasegawa 1 1 1 1 1 1 1 1 1 1 10
Honda 1 1 1 1 1 1 1 0 0 1 8
Uchikawa 1 1 1 1 1 1 1 1 0 1 9
Matsuda 1 1 1 1 1 1 1 1 1 1 10
LaHair 1 1 1 1 1 1 1 1 0 1 9
Yanagita 1 1 1 1 1 1 1 1 0 1 9

・標準点と偏差値

test[,2]
##  [1] 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 1 0 0 0
#test$z.score <- scale(test[,12])
test$z.score <- (test$score-test.mean)/sqrt(test.var)
test$z.hensati <- 10*test$z.score+50
head(test)
subject q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 score z.score z.hensati
Hasegawa 1 1 1 1 1 1 1 1 1 1 10 1.4919137 64.91914
Honda 1 1 1 1 1 1 1 0 0 1 8 0.6270362 56.27036
Uchikawa 1 1 1 1 1 1 1 1 0 1 9 1.0594749 60.59475
Matsuda 1 1 1 1 1 1 1 1 1 1 10 1.4919137 64.91914
LaHair 1 1 1 1 1 1 1 1 0 1 9 1.0594749 60.59475
Yanagita 1 1 1 1 1 1 1 1 0 1 9 1.0594749 60.59475

5.2 困難度と識別力.

CTTでは、項目ごとの正答率が困難度を表す。

item.diff <- apply(test[2:11],2, mean);item.diff
##   q1   q2   q3   q4   q5   q6   q7   q8   q9  q10 
## 0.65 0.85 0.65 0.60 0.90 0.80 0.75 0.40 0.20 0.75

CTTでは、テスト得点と項目得点の相関係数(I-T相関)が識別力を表す。

head(cor(test[2:11],test[12],use="pairwise.complete.obs"))
##        score
## q1 0.6278468
## q2 0.4026810
## q3 0.7185106
## q4 0.7679594
## q5 0.3675729
## q6 0.4432497

5.3 α係数

α係数は、項目間の相関が高いほど、あるいは項目数が多いほど大きな値をとる。1つのテストを構成する項目間の相関が高いとき、テストの内的整合性、あるいは内部一貫性が高いという。

5.3.1 項目得点の分散.

var関数による不偏分散とベルヌーイの分散を利用した式は若干異なる。

#不偏分散
apply(test[2:11],2, var)
##         q1         q2         q3         q4         q5         q6         q7 
## 0.23947368 0.13421053 0.23947368 0.25263158 0.09473684 0.16842105 0.19736842 
##         q8         q9        q10 
## 0.25263158 0.16842105 0.19736842
#ベルヌーイ(2値)の式を利用した分散
item.var <- item.diff*(1-item.diff);item.var
##     q1     q2     q3     q4     q5     q6     q7     q8     q9    q10 
## 0.2275 0.1275 0.2275 0.2400 0.0900 0.1600 0.1875 0.2400 0.1600 0.1875

不偏分散のほうが大きめの値を出力する。

5.3.2 α係数の計算.

alpha <- (10/(10-1))*(1-sum(item.var)/((19/20)*var(test[12])))
alpha
##           score
## score 0.7272349

分散は標本分散を用いるので、varから得られた値を修正している。 分散の比であるので、分母分子とも不偏分散を用いても結果は変わらない。

alpha <- (10/(10-1))*(1-sum(apply(test[2:11],2, var))/var(test[12]))
alpha
##           score
## score 0.7272349

6 CTTの問題点.

  • 標本依存性

  • 項目依存性.

異なる受験者集団や、異なるテストを比較する場合に問題になる。

6.1 パッケージを利用したIRT.

library(ltm)
## Loading required package: MASS
## Loading required package: msm
## Loading required package: polycor
library(irtoys)
## Loading required package: sm
## Package 'sm', version 2.2-5.7: type help(sm) for summary information
## 
## Attaching package: 'sm'
## The following object is masked from 'package:MASS':
## 
##     muscle
ans2 <- ltm(test[2:11] ~ z1)
ans2$coef[1:6,1:2]
##    (Intercept)         z1
## q1   1.4273464  2.8906062
## q2   2.1461199  1.2164582
## q3   0.7667901  1.0818991
## q4   7.6073079 28.6901396
## q5   2.3139211  0.5866775
## q6   2.5485632  2.4664043
par(mfrow = c(1, 1))
plot(ans2, type = "ICC",item=c(1:4))#項目特性曲線

CTTによる分析とIRT(2PL)による分析では、かなり大きな差があるようである。