计算机自适应题库实现
扫描二维码
随时随地手机看文章
计算机自适应测验(Computerized Adaptive Testing,简称CAT)是近年来发展起来的一种新的测验形式。计算机自适应测验不同于传统的纸笔测验,它的测验试题的呈现和被试对试题的解答都是通过计算机完成的。计算机自适应测验也不同于一般的计算机化测验,计算机在测验过程中不光是呈现题目,输入答案、自动评分、得出结果,而且根据被试对试题的不同回答,它能自动选择最适宜的试题让被试回答,最终达到对被试能力作出最恰当的估计。本文将简单介绍计算机自适应测验的原理和方法。
1 题库的分析与实现
1.1 原理
计算机自适应题库要解决的关键问题是建立适合每一个应试者能力的个性化测验。
一般将测量理论分为经典测量理论、概化理论和项目反应理论三大类,或称三种理论模型。人们将以真分数理论(True Score Theory)为核心理论假设的测量理论及其方法体系,统称为经典测验理论(Classical Test Theory,CTT),也称真分数理论。它对建立试卷、考分转换、等值等均有一套较为完整的方法。但随着测验实践的深入,此理论暴露了难以克服的弱点: (1)题目难度、区分度等严重依赖于应试者;(2)对应试者的某项能力或特质水平的估计值,只有当所有应试者使用的都是同一个或并行测验时才是可以比较的,而对于同一能力或特质的不同测验的测量效果则无法进行直接比较;(3)在应用方面,经典测量理论也表现出许多不足。
项目反应理论(item response theory)也称潜在特质理论或潜在特质模型,是一种现代心理测量理论,其意义在于可以指导项目筛选和测验编制。项目反应理论假设被试有一种“潜在特质”,潜在特质是在观察分析测验反应基础上提出的一种统计构想,在测验中,潜在特质一般是指潜在的能力,并经常用测验总分作为这种潜力的估算。项目反应理论认为被试在测验项目的反应和成绩与他们的潜在特质有特殊的关系。但在实际考试中,存在有应试者猜题的因素,因此本题库中采用了特征函数的三参数模式。三参数模式的公式为:
式中,D=1.702;θ是应试者能力值;a是题目的区分度;b是题目的难度;c是题目的猜测系数;P(θ)能力为θ的人答对此题目的概率。
根据特征函数可画出题目的特征曲线,图1为典型的三参数模式的特征曲线。从该图中可以看出:
(1)a参数,即特征曲线的斜率。它的值越大说明题目对应试者的区分程度越高。
(2)b参数,即特征曲线在横坐标上的投影。
(3)c参数,即特征曲线的截距。它的值越大,说明不论应试者能力高低,都容易猜对本道题目。
项目反应理论同经典测量理论相比,最大优点就是项目参数的不变性。对项目各参数值的确定,采用了2种途径:一是经试测后进行统计分析,另一种是由专家进行评估后,再采用统计方法确定参数。这2种途径都存在着统计中使用的样本采集异常困难的问题,因此本题库设计中使用CTT采集样本,结合IRT的三参数模式,确定了试题的3个质量参数。
1.2 题库的建立
本题库建立过程中,首先要录入试题编号及题干等信息,其次录入参加试题参数测试人员做题情况的信息,最后进行试题的三质量参数测试,并将测试结果写入数据库。
1.3 模块设计
本题库中的模块及功能如下:
(1)试题质量参数测试
该模块包括试题的CTT参数计算和IRT参数计算等功能。
①试题的CTT参数计算。根据参加试题参数测试人员的做题情况,使用CTT获取标准分Z:
式中,RH、RL分别表示高分组和低分组通过该题的人数;n为每组的人数。
②试题的IRT参数计算。对IRT能力参数和质量参数的估计如下:
首先,按下列方式为能力参数、质量参数指定初值:
IRT能力参数的初值=经典测量理论中的标准分Z;
IRT区分度参数的初值=经典测量理论中的难度值
+2(2是比例因子),其中难度;
IRT猜测参数的初值=试题j的可选项数倒数。
然后,按以下步骤进行迭代运算:
●把3个质量参数看作已知值,用极大似然估计法[2]估算出能力参数;
●将上一步中估需出的能力参数作为已知值,用极大似然估计法估算出3个质量参数;
●判别结束条件是否满足,若满足,则最后1次的估计值即为最终估计值;若不满足,则返回第1步继续迭代运算。结束条件可以是指定的迭代次数,也可以是趋于稳定的参数值。
(2)试题库维护
该模块包括试题、样本信息的录入和增添等功能。
①试题和样本信息的录入。该功能包括试题录入和样本信息录入,其中前者录入的是试题编号及题干等信息;后者录入的是参加试题参数测试人员做题情况的信息。
② 试题和样本信息的增添。试题管理员可以及时添加样本信息和试题。系统管理员可以根据情况重新计算试题的质量参数。
1.4 数据库表的结构设计
在本系统建立的自适应试题库中,有单选题、多选题、判断题等3类题型。在单选题题型中需要用到单选表single_choice、单选分析表single_choice_analysis。单选表、单选分析表single_choice_analysis以及二表之间的主外键关系如图2所示。
本系统涉及到的人员有教师、管理员、应试者和参加试题参数测试人员,他们的相关信息如图3所示。其中,student_info表用来存放应试者和参加试题参数测试人员的基本信息, login表用来存放所有人员的登录信息。1.5 题库的实现
以经典测量理论(CTT)和项目反应理论(IRT)为基础,使用三参数模式建立了计算机自适应题库,从而能够根据题目的参数及应试者的反应情况估计应试者的能力参数,然后根据“最大信息量原则”从题库中选取符合应试者能力的题目进行测试。
由于篇幅有限,下面只给出其中的几个实现算法。[!--empirenews.page--]
(1) 计算一阶导数的函数
yijiedaoshu(parameters para[ ],integer j, integer n),返回 double 类型的值。其中parameters{ double a,double b,double c,double ability,double u}是一个结构体,由某试题的三质量参数a、b、c、应试者当前能力值 ability和做题情况u 组成。
该函数的功能是计算对某试题的第j次迭代的一阶导数,用于计算具备初始能力值ability的受测者的真实能力值。实现代码如下:
double result;
int i;
for i=1 to n
result += para[i].a * (para[i].u - calculate(para[i]. a,para[i].b,para[i].c,para[i].ability)) & * (calculate
(para[i].a,para[i].b,para[i].c,para[i].ability) - para [i].c)
next i
if (calculate(para[j].a,para[j].b,para[j].c,para[j].ability))
* (1 - para[j].c) <> 0 then result = (1.702 *
result) / (calculate(para[j].a,para[j].b,para[j].c,para [j].ability)) & *(1 - para[j].c);
else
MessageBox(“错误提示”,“错误编号:005~r~n计算错误!程序终止!”);
halt;
end if
// 第j次迭代一阶导
return result
(2) 计算概率的函数
calculate(double a ,double b, double c,double ability),返回double 类型的值。
该函数的功能是计算某试题被答对的概率。实现代码如下:
double resultnum,mid;
mid= - 1.702*a*(ability - b);
if (1+exp(mid)) < > 0 then
resultnum=(1 - c)/(1+exp(mid))+c;
else
MessageBox(“错误提示”,“错误编号:
006~r~n计算 错误!程序终止
!”);
halt;
end if
return resultnum;
(3) 计算信息函数
information(parameters para[],integer j, double ability),返回double类型的值。
该函数的功能是用来计算某试题的信息量,用来为具备ability初始能力值的应试者选择合适的下一道试题。实现代码如下:
double result=0
result = (1.702 * 1.702 * para[j].a * para[j].a) * (1 -
para[j].c);
if ((para[j].c + exp(1.702 * para[j].a * ((1 - (calculate
(para[j].a,para[j].b,para[j].c,ability)) &-para[j].b))))* (1 + exp(- 1.702 * para[j].a * (1 -
(calculate(para[j].a,para[j].b,para[j].c,ability)) & - para[j].b))) * (1 + exp(- 1.702 * para[j].a * (1 -
(calculate(para[j].a,para[j].b,para[j].c,ability)) &- para[j].b)))) < > 0 then
result=result/((para[j].c+exp(1.702*para[j].a*((1-(calcu- late(para[j].a,para[j].b,para[j].c,&
ability))-para[j].b))))*(1+exp(-1.702*para[j].a*(1 - (calculate(para[j].a,para[j].b,para[j].c,&
ability))-para[j].b)))*(1+exp(-1.702*para[j].a * (1 - (calculate(para[j].a,para[j].b,para[j].c,&
ability)) - para[j].b))))
else
MessageBox(“错误提示”,“错误编号:007~r~n计算错误!程序终止!”);
halt;
end if
return result
本计算机自适应题库以经典测量理论和项目反应理论为基础,采用Newton-Raphson迭代法,解决了基于IRT的考试系统建设中出现的系统题库建设的最大难题。