第 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") # 建立工作目錄:請確認你已經轉換成斜線 (/)
<- read.csv("B1_scored_E.csv")
resp
#執行古典測驗理論(CTT)的題目分析
<- itemAnalysis(resp)
IA $alpha
IA$itemReport
IA
#執行題目反應理論(IRT)的分析
<- tam.jml(resp)
mod1 summary(mod1)
$WLEreliability
mod1plot(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)
<- c("4","3 hundreds","1720","8","160mL","1100","Bir and Mif","3","15","5","2022","5","football","C","35")
key
setwd("C:/G_MWU/ARC/Philippines/files")
<- read.csv("B1_raw_E.csv", stringsAsFactors = FALSE, colClasses = rep("character", length(key)))
resp_raw
<- score(resp_raw,key=key,output.scored=TRUE) #執行 CTT 套件的 score 功能,以對原始作答反應進行評分
s <- s$scored # s$scored 包含了所有評分的結果
resp
<- tam.jml(resp)
mod2 summary(mod2)
練習1與練習2的題目反應理論分析結果應該是完全相同的,兩者唯一的差別是在練習2中,我們需要先讀取原始作答資料並進行評分,才進行題目反應理論的分析。
直接讀取原始資料(而非評分過後的資料)有一個好處,就是我們可以用它來進行題目選項分析(item distractor analysis),藉以觀察學生對每一個選項的反應有什麼不同,以及高能力與低能力學生對選項的作答反應是否會不相同。在 TAM 套件中,應用 tam.ctt 的指令可以執行選項分析,如下所示:
<- tam.ctt(resp_raw,mod2$WLE)
ItemAnalprint(ItemAnal)
此時,如果你想要儲存這個題目分析所輸出的結果,你可以使用 sink 指令。
sink("tamctt.txt")
print(ItemAnal)
sink()