我知道这有点太晚了,但出于历史原因,我想回答这个问题。
使用 R 包模拟 CAT
如今,该软件包catr能够模拟 CAT,这似乎正是您想要做的。它有很多选项,例如起始项的数量,下一项的选择方法,停止规则的配置等。
这是我计算机中的一段旧代码。所有学分都转到catr 手册。
# call the catR package, if not installed then install it
if (!require('catR')) install.packages('catR')
require('catR')
# create a bank with 3PL items
Bank <- genDichoMatrix(items = 500, cbControl = NULL, model = "Rasch",
seed = 1)
# list of four parameters that characterize a CAT: start, test, stop, final
# these lists will feed the randomCAT function to generate a response pattern
# one first item selected, ability level starts at 0, criterion for
# selecting first items is maximum Fisher information
Start <- list(nrItems = 1, theta = 0, startSelect = "MFI")
# use weighted likelihood, select items through MFI (see previous comment)
Test <- list(method = "WL", itemSelect = "MFI")
# stopping rule by classication, meaning that the test will stop when the
# CI no longer holds the threshold inside it anymore
Stop <- list(rule = "precision", thr = 0.4, alpha = 0.05)
# how estimates of ability are calculated
Final <- list(method = "WL", alpha = 0.05)
# set true ability at 1, calls lists above
res <- randomCAT(trueTheta = rnorm(n=1,mean=0,sd=1), itemBank = Bank,
start = Start, test = Test,
stop = Stop, final = Final)
# plotting the response pattern
plot(res, ci = TRUE, trueTh = TRUE, classThr = 2)
额外位:从响应模式中提取项目参数
从这个问题中,我意识到您已经有了想要用来提取项目参数(辨别力、难度、猜测因素等)的响应模式。为了做到这一点,我推荐这个mirt包,它可以做到这一点(还有更多)。您可以在此处和此处找到有关如何使用此软件包的示例。
我预测您要做的唯一额外工作是将mirt的输出矩阵转换为使用的输入格式catr。