以經(jīng)典測量理論(CTT)和項目反應理論(IRT)為基礎,使用三參數(shù)模式建立了計算機自適應題庫,從而能夠根據(jù)題目的參數(shù)及應試者的反應情況估計應試者的能力參數(shù),然后根據(jù)“最大信息量原則”從題庫中選取符合應試者能力的題目進行測試。
由于篇幅有限,下面只給出其中的幾個實現(xiàn)算法。
(1) 計算一階導數(shù)的函數(shù)
yijiedaoshu(parameters para[ ],integer j, integer n),返回 double 類型的值。其中parameters{ double a,double b,double c,double? ability,double? u}是一個結構體,由某試題的三質(zhì)量參數(shù)a、b、c、應試者當前能力值 ability和做題情況u 組成。
該函數(shù)的功能是計算對某試題的第j次迭代的一階導數(shù),用于計算具備初始能力值ability的受測者的真實能力值。實現(xiàn)代碼如下:
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) 計算概率的函數(shù)
calculate(double a ,double b, double c,double ability),返回double 類型的值。
該函數(shù)的功能是計算某試題被答對的概率。實現(xiàn)代碼如下:
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) 計算信息函數(shù)
information(parameters para[],integer j, double? ability),返回double類型的值。
該函數(shù)的功能是用來計算某試題的信息量,用來為具備ability初始能力值的應試者選擇合適的下一道試題。實現(xiàn)代碼如下:
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
本計算機自適應題庫以經(jīng)典測量理論和項目反應理論為基礎,采用Newton-Raphson迭代法,解決了基于IRT的考試系統(tǒng)建設中出現(xiàn)的系統(tǒng)題庫建設的最大難題。
?
評論
查看更多