第 2 章 CTT 與 IRT
本課中,我們會先討論古典測驗理論Classical Test Theory (CTT) 與題目反應理論Item Response Theory (IRT) ,然後再討論這兩個理論的特色與差異。
我們進行一個測驗或考試最主要的目的,是要了解學生在所測驗領域的能力程度。此外,我們還會想知道所使用的測驗與題目的相關特徵,例如想了解題目的難度,以及該測驗是否能夠區分學生的能力程度,換句話說,我們想知道測驗的信度以及題目的鑑別度。
CTT 與 IRT 兩者都可以提供上述的資訊,以下我們先討論 CTT 的方法。
2.1 CTT 能力測量的方式
CTT 測量學生能力的方式是透過學生的得分或者是在測驗中的答對率。
2.2 CTT 題目難度
CTT 理論下,題目難度是指學生答對某一題的人數百分比,這與前述測驗學生能力的方法相似。
2.3 CTT 題本信度
CTT 題本信度反映出我們可以信任從測驗成績將學生能力來進行排序到什麼程度。如果一個測驗有兩個相似(平行) 的題本,則學生在兩個相似(平行)題本得分之間的線性相關係數,可視為是該測驗的信度係數,其中相似(平行)題本是指兩個試題本中的題目所測的概念與難度是非常接近的。
2.4 CTT 題目鑑別度(點二系列相關係數)
在古典測驗理論的架構下,每一題的鑑別度是指學生在該題得分與學生在這整個測驗的總得分之間的線性相關係數。鑑別度是非常重要的指標,可用來評估一個題目的品質。如果學生亂猜某題答案,則當我們計算學生在該題的得分與他們在這整個測驗的得分之間的線性相關係數時,該相關係數會非常接近0。一個題目的鑑別度如果很高,這反映出高能力的學生在該題普遍答對得1分,而低能力的學生在該題普遍答錯得0分,因此它反映出學生在該題的表現與在測驗的總得分有很強的關係,而且也反映該題有對應到我們想要測量的構念(construct)。
在這裡請讀者確認,你是否能夠分別出題目的難度與鑑別度這兩個概念的差別?
在古典測驗理論的架構之下,一個題目或測驗的統計量是建立在測驗總分這個概念之上,因此若要詮釋該等統計量,必須在該測驗脈絡之下來進行詮釋這些統計量。例如,如果一群學生當中有些人作答部分的測驗題目,而另外一群學生作答另外一組的題目,他們的總得分是無法比較的,在這個時候,我們並不應該採用 CTT 的理論來進行分析。
2.5 IRT
以下的章節中,我們先扼要介紹 IRT 的概念,往後的章節再介紹更深入的 IRT 概念。 IRT 理論主要是用一個數學模型來估計某一個學生答對某一題的機率,而該題答對機率會跟該題難度與學生能力之間的差距存在一個函數關係。該函數關係反映出一個學生如果能力比較高,則該生答對該題的機率也會比較高。同樣的,如果一個題目比較簡單,該函數關係也會反映出高能力的學生會有較高的機會答對該題。
2.6 IRT 能力值
IRT 的能力值是建立在一個稱為 logit 的量尺上,logit是 “log-odds-unit” 或是 “logistic unit” 的簡稱,其中 “log-odds-unit”是指用對數勝算作為單位。一般測驗的答對率是從0%到100%,但logits的取值範圍是從\(-\infty\) 到 \(\infty\)。
前述的學生能力取值範圍並沒有任何限制,即假設可以從負無限大到正無限大的假設,可以解決在CTT架構下的一個問題,也就是一個測驗會有所謂的地板效應與天花板效應,這些效應使得在CTT架構下,學生的得分並不能代表該生真正的能力。
2.7 IRT 題目難度
在IRT 的架構下,題目難度與學生的能力是放在同一個logit 量尺上,題目的難度可以視為是一種能力值,具有該能力值的學生有0.5的機率答對該題。換句話說,如果某一題的難度為 \(\delta\),則在所有具有能力值為 \(\delta\) 的學生當中,會有50%的學生答對該題。IRT 理論最重要的特色,就是將題目難度定義在能力量尺上,使得我們可以直接推估一個學生答對某一題的機率為何。相較之下,在古典測驗理論的架構中,題目的難度與學生的能力值並不能夠直接進行比較。
2.8 IRT 題本信度
在IRT 的架構下,題本信度是建立在以logit為單位學生的能力值,而不是在學生答對的題數或得分,而IRT的題本信度的詮釋則類似於古典測驗理論架構下的題本信度。
2.9 IRT 題目鑑別度
在IRT 的架構下,某一題的鑑別度可以透過用殘差(residual-based)估算題目擬合度的方式進行估算,並且可以用以logit為單位的學生能力值與學生在該題得分之間的相關係數來進行估計。同樣,題目鑑別度的詮釋相當類似於古典測驗理論架構下的詮釋。
2.10 IRT 所估計的參數不依賴於特定的測驗
在 IRT 的架構下,即使不同的學生作答不同的題目,仍然可以估計出學生的能力,這是因為IRT 是透過學生所寫題目的難度來進行學生能力值的估計。
2.11 小結
如果學生都寫同樣的測驗題目,則用 CTT 與 IRT 來進行分析的差異不大。然而, IRT分析的結果比較具有可推廣性。再者, IRT 由於學生能力值與題目難度是放在同一個量尺上,因此 IRT 容許我們對每一位學生的技能做更適當的描述,例如我們可以說這位學生很可能可以答對這個難度的題目,但可能不能夠答對另一個難度的題目。
2.12 實作練習1
以下是示範用 R 軟體的 CTT 套件來進行題目的分析。 請將下列指令逐一輸入在R Studio的編輯視窗內,每一行輸入完畢後請按執行(Run)。
rm(list=ls()) #此指令消除R環境中的物件
library(TAM) #讀入 TAM 套件
data(data.sim.rasch) #從 TAM 套件中抓出名為 data.sim.rasch 的資料集
head(data.sim.rasch) #列出該資料集頭幾行的資料
<- data.sim.rasch #複製data.sim.rasch資料,並用resp作為新檔名
resp
<- apply(resp,1,sum) #計算測驗得分
scores head(scores) #列出頭幾行的得分資料
<- apply(resp,2,mean) #計算題目的平均值
itemscores head(itemscores)
#計算第一題的鑑別度
cor(scores,resp[,1]) #第一題的鑑別度
cor(scores-resp[,1],resp[,1]) #更好的鑑別度計算方式是先從總分扣除第一題得分,然後求它與第一題得分之間的線性相關
#計算所有題目的鑑別度
<- apply(resp,2,function(x){cor(scores-x,x)})
disc
disc
#用 CTT 套件比較容易完成上面的指令
library(CTT)
<- itemAnalysis(resp) #將題目分析結果存入 IA 這一個物件
IA $itemReport # IA物件中有很多題目分析的結果,請在 IA 的名稱後加上一個"$"去列印出不同成分的結果,例如以下指令是列印出 Cronbach's alpha 的值。
IA$alpha IA
2.13 實作練習2
CTT 套件包含一個稱為 “CTTdata” 的資料集,該資料集有學生回答20題的原始作答資料,還沒有經過評分。請用以下的程式碼去讀出該資料集。讀出該資料集以及讀出該20題的正確選項。
library(CTT) #請確認你已經下載 CTT 這個套件
data(CTTdata)
data(CTTkey)
head(CTTdata)
CTTkey
#請用 CTT 軟件中的 "score" 指令來進行評分的動作
<- score(CTTdata,CTTkey,output.scored = TRUE)
resp
#resp 包含兩個資料集,分別為 resp$scored 與 resp$score
#請用 "resp$scored" 資料進行試題分析
2.14 回家作業
TAM 套件包含一個名為 “data.numeracy” 的資料集,該資料集包含學生的原始作答選項,另外還有已經評分的資料分別為(data.numeracy$raw, data.numeracy$scored)。請用 CTT 套件去分析 “data.numeracy” 的原始資料以及已經評分的資料。請用以下的 R 程式碼將正答選項輸入到名為 “key” 的物件。
<- c(1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1) key
請檢查,兩個分析的結果是否相同?兩個分析的結果應該是一樣的。