朱 凱李 悅
?
RPT方法在多元游程檢驗中的應用
朱 凱1李 悅2△
1.江西師范大學科學技術學院(330027)
2.南昌大學公共衛生學院
游程檢驗是根據樣本標志表現排列所形成的游程的多少進行判斷的檢驗方法,在檢驗樣本的隨機性及判斷數據的規律性等方面有著重要的作用。本文針對多元小樣本隨機游程檢驗問題,介紹可以有效解決這一問題的方法——randomized permutation test(簡稱RPT),并運用Matlab軟件編寫程序實現該方法。
設二元序列中0和1的個數分別為n1和n2,n1+ n2=n,一般來說n1和n2都大于0,設R表示總游程數,則R的最小值是2,最大值為n,若游程總數R的值過大(即0和1呈周期性變化的趨勢),或游程總數R的值過小(即序列二元0和1的出現過于集中),可認為樣本數據受到了某些非隨機因素的干擾,它不符合隨機抽取的原則[1]。
在實際應用中,隨機游程對某一樣本觀測值序列進行檢驗時,通常有參數法和確切概率兩種方法。當n1,n2都較大時,可使用參數法。利用檢驗統計量(游程)近似服從正態分布的特性,通過矩法估計求出其參數,再根據現有樣本的游程數得出p值[2]。但對小樣本數據參數法會產生較大的誤差。此外,當樣本序列中出現了類似于0,1,2的三元或三元以上的序列時,游程數的確切分布更加難以獲得,國內目前尚沒有涉及三元及以上游程檢驗方法的文獻報道。顯然參數法只能針對游程為二元的大樣本數據使用。于是基于確切概率的非參數檢驗方法可用于游程檢驗,該方法既可以避免小樣本數據的誤差,又能夠用于分析多元游程數據,故此法較傳統的參數法有很多優勢。其基本過程為:首先計算現有樣本的游程總數,記為Robs,稱Robs為游程總數的臨界值,然后找出該樣本所有可能組合及各組合對應的游程,根據各組合對應的游程求出大于(或小于)Robs的頻率,即為p值。該方法為全排列方法,即exact permutation test(簡稱EPT)。當樣本量偏大時往往由于排列較為復雜且組合數太多(當n1=10,n2=18時,組合數為C1028=13123110),難以獲得游程數的確切分布,此時基于全排列的EPT方法難以實現。故可以在所有的排列中隨機抽取其中一部分排列,得出游程數的近似分布,該方法稱之為random permutation test(RPT方法)[4]。RPT的實現過程為:利用軟件產生的隨機數,對所有可能的排列進行抽樣,得到游程總數R的近似抽樣分布,即對所有可能的組合進行隨機抽樣后計算抽樣游程總數大于臨界值Robs的頻率,該方法在游程檢驗中的關鍵步驟如下:
1.建立假設,確定檢驗水準,H0:樣本序列符合隨機抽取的原則,α=0.05(單側檢驗);
2.計算現有樣本的游程數Robs,稱Robs為R的臨界值;
3.利用軟件對構成現有的元素進行隨機排列,得到與現有樣本各元素數均相同的隨機樣本,計算其游程數R,反復進行該步驟得到檢驗統計量R的經驗抽樣分布;

例:在某次臨床隨機試驗中,共入選14人。現用字母代表他們的病情程度,A、B、C分別代表重度、中度、輕度。按照入組時間的先后順序,這14人實驗前的病情程度依次為:A A B C C C B A C B B A A B。
試問:能否認為該實驗病人入選順序隨機,α=0.05。
解:H0:病人入選順序是隨機的,H1:病人入選順序非隨機
由題中數據可知總例數n =14,nA=5,nB=5,nC=4,共有3個A游程,4個B游程,2個C游程,游程數觀察值為Robs=9。用RPT模擬100000次,即對5 個A,5個B,4個C進行隨機排序,重復進行100000次,分別求出每次模擬中總游程數,再求總游程數R大于Robs的頻率。筆者編寫了相應的Matlab程序實現該方法,程序[3]及注釋如下:
a =[0 0 1 2 2 2 1 0 2 1 1 0 0 1];%0 1 2分別代表A B C有三種結果
t =youcheng(a);%計算樣本游程數對應的概率
n =100000;%模擬次數
m =length(a);
p0 =0;
for i =1:n
b =matric_randperm(a);%將樣本進行隨機排列,形成一個模擬抽樣
y(i)=youcheng(b);%模擬抽樣對應的概率
if y(i)>=t
p0 =p0 +1;end
end
pp =p0/ n;
p =min(pp,1-pp)
%以下是主程序中調用youcheng函數的代碼
function[t,b]=youcheng(a)
t =1;b(1)=1;
for i =2:length(a)
if a(i-1)~=a(i)
t =t +1;b(t)=1;
else
b(t)=b(t)+1;
end
end
通過運行該程序,得到p =P(RA≥Robs)=0.30503,P值大于0.05,故接受H0,認為病人出現順序是隨機的。若使用EPT方法進行全排列,雖然所有不同的組合只有種,但尋找這些不同的組合過程十分困難,需從314=4782969種不同組合中將它們篩選出來,整個過程涉及多個復雜的程序及大量計算,而且隨著樣本量的增加,EPT方法運算次數還將呈幾何數增長。故EPT方法在游程檢驗中是難以實現的。該問題游程總數的確切分布見表1。

表1 總游程數R的EPT分布
根據表1我們可以得到該問題的確切概率(單側檢驗)p =P(RA≥Robs)=0.304196,RPT方法與之的相對誤差僅有0.2742%。據此我們可知RPT方法較EPT方法簡化了計算過程且減少了運算次數,未引起過大的誤差。RPT方法可以針對多元數據進行游程檢驗,突破了參數法只能進行二元游程檢驗的局限。此外該方法可根據實際情況適當調整抽樣次數,以達到增加精度或減少計算量的目的[4]。
隨機游程檢驗是檢驗一個序列中數據出現是否與順序無關的常用方法。本文將RPT方法應用于游程檢驗,解決了多元游程檢驗的問題。但在使用過程中需注意以下三點:
1.在樣本量不大時使用參數方法進行游程檢驗,p值會有一定的誤差。RPT方法可有效地提高p值的精度;
2.本文只討論了二元和三元序列的游程檢驗,若遇上三元以上序列的游程檢驗問題,可直接調用本文給出的程序求出值;
3.由于程序運行中要用到隨機數,最終的結果必然產生一定的誤差,因此建議在計算機允許的情況下加大模擬次數,并反復運行程序,待結果相對穩定后再下結論[5-6]。
RPT作為EPT的一種近似方法,具有使用方便、誤差小、執行效率高的優點,是一種解決多元游程檢驗并有效提高檢驗效率的好方法。
參考文獻
[1]付云廷.游程檢驗法在制訂業務計劃中的應用.中國衛生統計1990,7(4):42-43.
[2]王星.非參數統計.北京:清華大學出版社2009,68-71.
[3]丁元林,孔丹莉.多個樣本及其兩兩比較的秩和檢驗SAS程序.中國衛生統計,2002,19(5):313-314.
[4]荀鵬程,趙楊,柏建嶺,等.Permutation Test在假設檢驗中的應用.數理統計與管理,2006,26(5):616-621.
[5]Cai JW,Shen Y.Permutation tests for comparing marginal survival functions with clustered failure time data.Statist,Med,2000,19:2963-2973.
[6]朱凱,李悅.RPT對秩和檢驗的改進及Matlab實現.中國衛生統計,2012,20(4):597-597.
(責任編輯:鄧 妍)
·綜述·
通信作者:△李悅,Email:liyue0803@126.com