付志慧, 武 健, 馬明玥
(1. 沈陽師范大學 數(shù)學與系統(tǒng)科學學院, 沈陽 110034; 2. 首鋼工學院 基礎(chǔ)學院, 北京 100144)
在過去的20年中,項目反應理論(item response theory, IRT)[1]建模已經(jīng)實現(xiàn),由于計算能力和馬爾可夫鏈的發(fā)展,MCMC(Markov chain Monte Carlo)算法[2]越來越受歡迎,很多軟件程序?qū)崿F(xiàn)了MCMC算法,包括WinBUGS,OpenBUGS,JAGS,SAS的PROC MCMC和R語言中的Mcmcpack,在這些軟件程序中,其中Gibbs采樣[3]和Metropolis算法[4]是最常用的。這些算法雖然很受歡迎,但存在局限性,Stan采用HMC(Hamiltonian Monte Carlo)算法[5],比Gibbs快得多,相比之下能更有效率地探索后驗參數(shù)空間[6]。
總的來說,Stan程序的優(yōu)點在于:
1) 它比傳統(tǒng)的貝葉斯軟件程序效率高;
2) Stan與WinBUGS和OpenBUGS不同,它允許與其他軟件程序接口;
3) 它允許與其他軟件程序接口,如R,Python,Matlab, Stata,Julia,兼容性較強,主要有3個操作平臺,即Linux,Mac和WindowCurtis(2010)[7]。
四參數(shù)Logistic模型也稱四參數(shù)項目反應模型,一個被試的反應可被分為以下3類:
1) 體現(xiàn)被試真實能力的反應;
2) 被試作答正確是依靠猜測;
3) 被試作答錯誤是由于粗心、焦慮、疲勞、注意力不集中等原因?qū)е隆?/p>
這3種因素導致了估計偏差,Barton和Lord(1981)[8]在 3PLM的基礎(chǔ)上引進一條小于1的上漸進線,加入失誤參數(shù)dj,解決了高能力被試人員因為失誤答錯簡單題目能力得不到準確估計的問題,使他們的能力水平能夠得到相應的合理準確評估。4PLM表示為
其中:uij表示第i個被試回答第j道試題的得分,當回答正確時,uij=1,回答錯誤時,uij=0,i=1,2,…,n,j=1,2,…,n; (aj,bj,cj,dj)為項目參數(shù)向量,aj表示第j道題目的區(qū)分度參數(shù)(斜率),bj表示難度參數(shù),cj表示第j道題目的猜測參數(shù)(下漸近線),dj表示第j道題目的失誤率參數(shù)(上漸近線);θi表示第i個被試的潛在能力水平,故第i個被試答對第道題的概率是關(guān)于能力水平θi的一個函數(shù)[9]。
Stan(Rstan)實現(xiàn)了2種計算效率更高的MCMC算法:HMC算法和The No-U-Turn算法[10]。HMC的性能很大程度上取決于步數(shù)L[11]和函數(shù)與位置相關(guān)的負勢能函數(shù)[12],當L太小時,會出現(xiàn)不可預期的隨機游走行為,當L太大時,HMC將會沿著生成循環(huán)的軌跡追溯回來,增加計算量。The No-U-Turn算法是HMC算法的一個擴展,在保留了HMC抑制隨機行走行為的能力基礎(chǔ)上,可以在沒有手動調(diào)節(jié)的情況下使用。從經(jīng)驗上看,The No-U-Turn算法的性能與調(diào)整良好的標準HMC算法一樣有效,有時甚至比HMC算法更有效。
假定有20道題,每道題的4個參數(shù)真實值分別為:a1,…,a20為1,b1,…,b20為0,c1,…,c20為0.75,d1,…,d20為0.25,利用Stan程序中的數(shù)據(jù)模塊生成相關(guān)反應矩陣,通過Stan函數(shù)對4PLM進行項目參數(shù)的Bayes估計,通過MCMC方法進行收斂診斷[13],迭代次數(shù)為10 000,重復進行模擬實驗30次,然后將30次模擬實驗得到的項目參數(shù)估計值與指定的參數(shù)真值做比較,如果二者之間的差異越小說明估計方法越有效,評價差異的指標有:偏差(bias)、標準誤差(root-mean-square error,Rmse)[14],每道題的項目估計結(jié)果保留4位小數(shù),如表1所示。為了方便查看,表中的bias值取真值與估計值之間差值的絕對值,由表1可以看出,大部分的Bias值都小于0.05,且大部分的Rmse值都小于0.04[15]。由此可以得出結(jié)論:通過Rstan包估計4PLM參數(shù)切實可行。
表1 參數(shù)估計值與真值的差異性指標Table 1 Difference between the parameter estimate and the true value
注: P=Parameter;Est.=Estimation
在控制臺顯示的最后一欄R2(Gemlman&Rubin, 1992)[16]是診斷收斂的統(tǒng)計量,計算潛在的縮減PSRF(potentialscalereductionfactorBrooks&Gelman, 1998)[17],當PSRF值接近1時,通常表示該參數(shù)是收斂的,參數(shù)的PSRF值小于1.05,表明已達到收斂,因此可以被視為后驗分布的有效樣本,除此以外,在Rstan中可以用traceplot命令來畫出模型參數(shù)的軌跡圖,進行再次收斂,圖1、圖2分別為模型參數(shù)guess_和slip_的軌跡迭代圖。
圖1 模型參數(shù)guess_迭代軌跡圖Fig.1 Model parameter guess_iteration trajectory diagram
圖2 模型參數(shù)slip_迭代軌跡圖Fig.2 Model parameter slip_iteration trajectory diagram
本文針對4PLM,運用R軟件中的Rstan包,采用MCMC方法對模型參數(shù)進行估計,通過多次模擬試驗可以看出,Stan程序估計精確度高、運算時間短,相比其他軟件更易操作查看結(jié)果。但是Stan也存在著缺點,它不能支持離散參數(shù)采樣,也就是說,要想在Stan中進行估算,參數(shù)需要被邊緣化才可以。雖然研發(fā)人員在Stan用戶手冊中有提供了一些關(guān)于如何進行邊緣化的介紹[18],實現(xiàn)起來卻存在多方面的難度。Rstan還可以用到其他比較復雜的IRT模型。