第 5 章 IRT 的試題分析

本節課我們將學習

  • 如何在 R 環境讀取 csv 格式的檔案
  • 如何對原始資料集進行評分
  • 如何進行題目選項分析

5.1 從本機電腦中讀取資料集

在 R 環境中,你需要知道原始資料檔儲存在你的電腦中什麼位置,才可以進行分析。我發現最容易的方法是到Windows Explorer去複製檔案的路徑。

當我點擊圖中的路徑,我電腦的Windows會顯示以下路徑:

C:\G_MWU\ARC\Philippines

若要在 R 環境中讀取資料檔,你需要在你自己電腦的路徑中的反斜線(\)更改為一條斜線 (/), 或者改為兩個反斜線(\\)。你可以用下列的 R 編碼設置一個當前指定的電腦文件夾 (Set working directory)。

setwd("C:/G_MWU/ARC/Philippines")  # 請注意,反斜線已更改為斜線

5.2 練習1

我們需要採用某一數學素養測驗(numeracy test) 的學生作答反應資料,這些作答反應是已經進行過評分的,該資料檔可以在這裡下載(請點擊)。該測驗的題目可以在這裡下載(請點擊)

rm(list=ls())

library(CTT)
library(TAM)
library(WrightMap)

#讀取已經評分的學生作答反應資料檔
setwd("C:/G_MWU/ARC/Philippines/files")  # 建立工作目錄:請確認你已經轉換成斜線 (/)
resp <- read.csv("B1_scored_E.csv")

#執行古典測驗理論(CTT)的題目分析
IA <- itemAnalysis(resp)
IA$alpha
IA$itemReport

#執行題目反應理論(IRT)的分析
mod1 <- tam.jml(resp)
summary(mod1)
mod1$WLEreliability
plot(mod1)
wrightMap(mod1$WLE, mod1$xsi, item.side=itemClassic)

5.2.1 請回答以下的問題

請根據古典測驗理論(CTT)的題目分析以及題目反應理論(IRT)的分析結果來回答以下問題:

  • 在題目反應檔案中總共有多少位學生?
  • 在題目反應檔案中總共有多少道題目?
  • 哪一題最簡單?哪一題最困難?
  • 哪一題最沒有鑑別的能力?哪一題最有鑑別的能力?
  • 請問在估計題目反應理論參數時,其約束(constraint)設置為何(請參考summary(mod1)的輸出結果)?這個約束設置代表什麼意思?
  • 請問題目難度的平均值為何?請問學生能力的平均值為何?
  • 這個測驗對於學生而言是簡單還是困難的?
  • 請問這個測驗的古典測驗理論的信度為何?其題目反應理論的信度為何?

5.3 練習2

前述練習1所用的資料集也有還沒經評分的資料集,我們稱這個檔案為原始作答資料檔,你可以從這裡下載到你的電腦中。

在這個資料檔中,它紀錄了學生在每一題不同的答案,例如第一題中,他們的答案包括(2,3,4,5,6,7,8,99),其中”99”通常會代表「其他答案」。

我們需要讀取這個原始作答資料檔,並進行評分。在讀取時,我們需要確保所有作答都是以文字的形式來讀取,而非以數據的方式讀取(可以參考 read.csv 的選項),以下框框中第五行的程式碼提供了這些題目的正答(key)。

rm(list=ls())

library(CTT)
library(TAM)
library(WrightMap)

key <- c("4","3 hundreds","1720","8","160mL","1100","Bir and Mif","3","15","5","2022","5","football","C","35")

setwd("C:/G_MWU/ARC/Philippines/files")
resp_raw <- read.csv("B1_raw_E.csv", stringsAsFactors = FALSE, colClasses = rep("character", length(key)))

s <- score(resp_raw,key=key,output.scored=TRUE) #執行 CTT 套件的 score 功能,以對原始作答反應進行評分
resp <- s$scored # s$scored 包含了所有評分的結果


mod2 <- tam.jml(resp)
summary(mod2)

練習1與練習2的題目反應理論分析結果應該是完全相同的,兩者唯一的差別是在練習2中,我們需要先讀取原始作答資料並進行評分,才進行題目反應理論的分析。

直接讀取原始資料(而非評分過後的資料)有一個好處,就是我們可以用它來進行題目選項分析(item distractor analysis),藉以觀察學生對每一個選項的反應有什麼不同,以及高能力與低能力學生對選項的作答反應是否會不相同。在 TAM 套件中,應用 tam.ctt 的指令可以執行選項分析,如下所示:

ItemAnal<- tam.ctt(resp_raw,mod2$WLE)
print(ItemAnal)

此時,如果你想要儲存這個題目分析所輸出的結果,你可以使用 sink 指令。

sink("tamctt.txt")
print(ItemAnal)
sink()

5.4 回家作業

請你用古典測驗理論及題目反應理論來分析一個文法測驗,該測驗的題目可以在這裡下載,而資料檔可以在這裡下載。該測驗都是選擇題,該資料檔包含的都是”A”、“B”、“C”、“D”四個字母,而這些作答反應尚未進行評分,各題的正確答案如下所示:

key <- c("D","D","D","B","B","B","A","D","C","B","A","C","D","A","B")

請執行古典測驗理論以及題目反應理論的分析,並回答前述5.2.1 所列舉的問題。