第 8 章 測驗等化之一:理論篇
在這節中,我們將學到
- 為什麼要學習測驗的等化
- 有哪些常用的測驗等化方法
8.1 為什麼需要進行測驗的等化?
當有位學生在某個測驗上得高分,我們並不清楚這是因為他是高能力的學生,還是因為測驗太容易了,除非我們擁有外在的資訊來幫助我們做判斷,否則不可為之。要了解這一點,我們也可以從數學的角度來觀察學生答對機率的方程式,由於答對的機率是\(\theta-\delta\)的函數,如果我們同時在\(\delta\) 與 \(\theta\)的參數加上同一個常數值,則兩者的差仍然維持與\(\theta-\delta\)為同一個值。換句話說,\(\delta\) 與 \(\theta\)並沒有唯一的解。因此在實務上,我們會在\(\theta\)的量尺上設定某一個值為0,這個0是隨意設定的,並以它作為原點,藉以固定所有\(\delta\) 與 \(\theta\)的值。習慣上,我們會採用’constraint=“items”’ (即題目平均難度=0)這個限制,或者是利用’constraint=“cases”’ (即學生平均能力=0)的限制。但由於任何一個測驗\(\theta\)量尺上的0是隨意設定的,因此在某一個測驗上估計出來的\(\theta\)與\(\delta\)值,它們並不能夠與另外一個測驗所估出來的\(\theta\)與\(\delta\)的值直接做比較。
8.2 將兩個不同測驗在同一個\(\theta\)量尺上能夠對齊的方法
首先,如果兩個測驗的題目完全不同,並對兩組不同的學生進行施測,則我們不能夠將兩個測驗進行等化。這是因為如果第一份測驗的得分普遍高於另第二份測驗的得分,我們沒法得知到底是第一份測驗的學生的能力是否確實高於作答第二份測驗的學生,還是比較高分測驗的題目是比較容易的題目。因此,要進行測驗等化的第一個條件,就需要在兩個測驗之間建立一種共通性,這種共通性可以是兩個測驗有部分題目採用相同的題目(又稱為共同題),或者是安排同一組學生作答兩份測驗。如果兩個測驗採用共同題,則我們可以確定在這兩個測驗中,共同題的難度參數都相同,然後將其餘題目的難度作相對應的調整。另一方面,如果兩個測驗是由同一組學生作答,則我們可以假設在作答兩個題本時,這些學生的能力維持不變,並據此判斷兩個測驗的相對難度。
下圖是要呈現兩個測驗採用共同題的架構,但每個測驗是由不同學生作答:
图 8.1: 兩個測驗採用共同題的架構
一般而言,在共同題的架構下,有三個常用的方法可以進行題本的等化:同時量尺化法(Concurrent Scaling Method)、平移(與比例)法(Shift (and scale) Method) 與定錨法(Anchoring Method)。
8.3 同時量尺化法
顧名思義,此方法是指將兩個測驗的作答反應合併在同一個檔案內,然後一併進行校準。換句話說,圖 8.1 中所有作答的資料視為是單一資料檔並進行分析。對作答測驗一的學生而言,他們對測驗一的題目與共同題都有作答反應,但對測驗二的題目就都視為是遺漏值。至於測驗二的學生,他們沒有作答測驗一非共同題的題目,因此這些通通也視為是遺漏值。由於 IRT 很輕易就能處理遺漏值,因此我們可以將所有作答資料用單一次 IRT 分析進行校準。對於兩個測驗的共同題,我們將會得到一組題目難度參數。測驗一獨有的題目就會在參照共同題的情況下進行校準,而測驗二的題目也會參照這些共同題進行校準,其結果就是兩個測驗的題目等化到同一個量尺上。
此方法通常適用於當我們有兩個測驗同時進行施測(concurrent),例如同時向兩組不同學生進行施測同一個測驗,但用兩個不同的版本,而這兩個版本基本上可視為等價,其中沒有一個版本比另一個版本更重要,也沒有一個版本已經在另一個版本之前施測,例如早一年施測。換句話說,我們並不需要保留那些先前已經校準過的題目參數。如果我們有一個新的測驗與一個舊的測驗,而且我們想將新的測驗等化到舊的測驗之上,則採用平移(與比例)法或是定錨法會比較適合。
8.4 平移(與比例)法
當我們需要將一個新測驗的結果等化到舊的測驗上,以建立單一的量尺,此時我們需要對兩個測驗單獨進行校準。但由於舊的測驗先前已經校準過,我們已經知道它題目的參數,而新的測驗將會有另外一組題目的參數,因此我們的共同題就會有兩組不同的題目參數,這個時候我們可以計算舊測驗的共同題難度參數的平均值,另外計算新測驗共同題難度參數的平均值,假設其結果為 \(\mu_{old}\) 和 \(\mu_{new}\) 。這個時候,如果我們要將新測驗共同題平均難度參數轉換成為等於舊測驗共同題平均難度參數,則我們需要對新測驗所有參數都加上 \(d=\mu_{old}-\mu_{new}\) 的值。換句話說,新測驗的所有題目難度參數與學生能力參數都要加上 \(d\) 這個值,這種等化的方法稱之為平移法。
平移法的要點是我們只需要對一個測驗所有參數加上一個常數,以進行等化的調整,我們並不會對參數的尺度因數(scale factor)做調整。但如果兩組測驗參數的尺度因數有很大的差別,則除了進行平移之外,我們同樣可以對其比例(scale)進行調整。當有需要對比例進行調整時,我們可以計算出共同題題目難度參數的標準差,例如舊的題本共同題難度的標準差為\(\sigma_{old}\),而新的共同題難度參數的標準差為 \(\sigma_{new}\),如果\(\sigma_{old}\) 與 \(\sigma_{new}\)差異蠻大時,則代表學生在兩個測驗表現的分散程度並不相同,這個時候,我們需要同時進行平移與尺度因數的調整,這可從如下的方式來進行。如果\(\delta_{new}\)代表新題本題目難度參數,我們可以用以下式子計算出新題本調整過後的難度參數:
\[\begin{equation} \delta_{adjusted\_new} = \frac{\delta_{new}-\mu_{new}}{\sigma_{new}}\times\sigma_{old}+\mu_{old}\tag{8.1} \end{equation}\]
同樣地,我們可以用以下式子計算出新題本調整過後的能力參數:
\[\begin{equation} \theta_{adjusted\_new} = \frac{\theta_{new}-\mu_{new}}{\sigma_{new}}\times\sigma_{old}+\mu_{old}\tag{8.2} \end{equation}\]
經過以上轉換後,新題本的\(\delta_{adjusted\_new}\) 與 \(\theta_{adjusted \_new}\)參數皆被轉換到舊測驗的量尺上。
8.5 定錨法
定錨法是平移法的一個變種,當我們對新測驗的題目要進行校準時,我們會將新測驗共同題難度的參數值設定為等於舊測驗共同題難度的參數值,這種處理的方式代表我們並不需要對新題本共同題難度參數進行任何的估算,而是設定為等於舊題本的參數值。與平移法相比,定錨法的自由度比較少,因為新測驗每一個共同題難度參數都有它相對應的設定值。另一方面,平移法容許新測驗共同題的難度可以有新的估計值,但條件是新測驗共同題難度參數的平均值會等於舊測驗共同題難度參數的平均值。
8.6 練習一
本練習所需要的資料檔來自兩個具有共同題的數學素養測驗,第一個測驗N1.csv file有50題,其中前面21題是這個測驗獨有的題目,之後的29題是與第二個測驗N2.csv有重疊的題目(即共同題)。第二個測驗也有50題,其中前面29題是與第一個測驗相同的題目。至於兩個測驗的標準答案可以從這裡specification file 下載。
請下載 R 套件 plyr ,以方便我們用 rbind.fill 指令將兩個資料集合併。
請設好你的檔案夾 (working directory),並用以下的程式來讀取資料檔,並將兩個檔案合併成一個檔案。
<- read.csv("N1.csv",stringsAsFactors = FALSE, colClasses = rep("character", 50))
N1 <- read.csv("N2.csv",stringsAsFactors = FALSE, colClasses = rep("character", 50))
N2 library(plyr)
<- rbind.fill(N1,N2)
resp_raw
<- "32213211431123114141111143411111211312111111323121414324231413131111242"
key <- unlist(strsplit(key,"")) key
請注意,rbind.fill 功能會按照兩個檔案內題目名稱的欄位(column name) 來進行合併,相同題目名字的資料會合併成為同一列的資料。該合併後檔案如圖8.1所示,其中NAs 代表 not available,即代表學生並沒有回答該等題目,例如回答測驗2的學生,他們並沒有回答測驗1獨有的題目,而回答測驗1的學生,他們沒有回答測驗2獨有的題目。
請對合併後的檔案用CTT評分的功能進行評分。
請首先用 CTT 分析經過評分後的資料,你應該會發現當你這樣做的時候,你會出現麻煩,因為 CTT itemAnalysis 的功能會自動將有遺漏值的資料直接刪除,即凡作答欄位出現 NA 的學生會被自動刪除,既然合併檔中所有學生作答反應當中都有一些 NA 的符號,因此所有學生的作答記錄皆會被刪除。
當你執行 itemAnalysis的時候,你可以選擇 NA.Delete的選項,例如可以參考如下的指令: IA <- itemAnalysis(resp,NA.Delete = FALSE)
如果你採用 NA.Delete=FALSE 的選項,則 CTT 套件將會把所有 NA 符號變成 0 分。這樣處理的方式並 不 恰當,因為學生其實是沒有機會回答這些題目,因此直接給他們 0 分是不合理的。然而,這裡是示範的性質,以展示如何用 CTT 套件得到一些分析的結果。我們必須強調,當學生回答具有共同題也有獨立題目的兩個測驗,因為資料並不完整,因此CTT 是不適合用來分析該等資料。面對這樣子的情況,比較適合的是採用 IRT的方法來對題目難度與學生能力參數進行估計。
請對合併後的資料檔執行 IRT 的分析,尤其請你執行 tam.ctt 的指令,並產出誘答選項分析的表格。請參考 7.3 中建立附錄A這一則的 R Markdown 編碼,並產出一份報告。