王丙參,魏艷華
(天水師范學院 數學與統計學院,甘肅 天水 741001)
統計理論以樣本推斷總體,大多數結論都是基于大樣本的,即只有樣本容量足夠大時才成立,但在實際中,確實存在因各種原因導致的小樣本情況[1,2]。Bootstrap方法正是處理這類小樣本問題的非參數方法,它利用計算機對小樣本再抽樣,進而模擬感興趣的未知分布并估計目標特征量,節約了成本,提高了精度,這就增加了此方法的實際應用性[3-6]。近年來,Bootstrap方法一直是人們關注的熱點之一,并取得了巨大成功,甚至有人把Bootstrap方法看做萬能藥,到處使用,但此法需要一定的條件才能產生合理結論,決不能盲用、濫用?;诖?,本文探討了Bootstrap方法的失效情況,并給出了相應的對策,最后利用蒙特卡羅方法驗證了前面結論,得出:利用部分樣本估計感興趣的量時,Bootstrap方法很可能會失效;樣本數據的小偏差超過一定界限時,Bootstrap方法的實際效果也不好。
假定觀測數據X={X1,X2,…,Xn}是來自總體F的獨立同分布樣本且樣本量較小,是樣本的經驗分布函數,T=g(X1,…,Xn)是感興趣量θ=T(F)的估計量,也常簡記為或Tn。實際中常根據估計量)和R(X,F)解決統計推斷問題,但由于R(X,F)依賴小樣本X和未知分布F,這導致R(X,F)的分布常常未知或者很難處理。另外,由于樣本量等問題會導致估計)可能會很不精確,而利用Bootstrap方法對樣本的經驗分布函數再抽樣,可給出R(X,F)的一種近似,它不需要參數假設且擴大了樣本量,與傳統參數估計理論相比,提高了估計精度[1]。再抽取樣本相當以概率從樣本經驗分布函數中抽樣,即利用經驗分布函數生成近似隨機數,習慣上記Bootstrap偽數據集為,也可稱為偽Bootstrap樣本。顯然,X*的元素獨立同分布于經驗分布函數,Bootstrap方法就是視R(X*,?)和R(X,F)是等價的,相應Tn的非參數Bootstrap估計記為。自然,人們希望,但在有些情況下,此目的不一定能達到,這就會導致Bootstrap方法的效果很差,甚至失效。通常,樣本容量為n的實際問題存在很多潛在偽數據集,但是無法將其所對應的概率一一列舉。退而求其次,可從樣本經驗分布函數中隨機抽取獨立的偽數據集,…,C,這樣就不需要完全列舉偽數據集,并且可以通過增大C使誤差降到可控范圍。
在前面的記號下,樣本X={X1,X2,…,Xn}中沒有結,即樣本中沒有兩個或兩個以上相同數據的地方,不妨令X1,…,Xm表示樣本X1,…,Xn中m個不同的量,m<n,若Tn=g(X1,…,Xm),則有:

其中,=g(,…,)。
事實上,由樣本之間的獨立性,與再抽樣的等可能性,則再抽樣的第一個樣本不可能是X1,…,Xm中任意一個的概率為:
P
進一步,則有:
Pi=P
又因為=Tn等價于n個再抽樣樣本X*={,中含有{X1,…,Xm}中至少各一個,故:

特別當m=1時比如,對于總體均值θ,估計量也是θ的無偏估計量,但只利用了部分樣本,此時Bootstrap方法就效果不佳,甚至可能會失效,尤其當m=1時,效果最差。這也從側面說明,當參數的估計量Tn=g(X1,…,Xm)僅利用了部分樣本,非參數Bootstrap方法效果就會很差,且利用的樣本越少,效果越差。遺憾的是,Bootstrap方法主要是用來處理小樣本問題的,在一般情況下,樣本容量n不會太大,甚至不會超過50,因為在n充分大時,經典估計的效果也會很好,Bootstrap方法的優勢就體現不出來了。注意,如果n太小,比如小于5時,Bootstrap方法非常不穩定,其實,只有5個樣本的話,用什么方法估計效果都不會太理想,復雜的數量方法可能還不如專家的定性預測。模擬結果表明,當樣本量超過15時,Bootstrap方法估計效果都比較可靠。對于小樣本問題,在實際中,討論極限就沒有多大意義,應用最多的反而是:

比如,當m=1,n=50,P=Tn)=0.6358。
在前面的記號下,若Tn=max{X1,…,Xn} ,樣 本X={X1,X2,…,Xn}中沒有結,則:


之所以沒采用常見的置信區間去評價,這是因為構造置信區間采用的方法不同,效果也會隨之改變。Bootstrap方法的實現步驟為:
(1)生成隨機數x1,…,xn服從U(0,θ),并計算tn=max{x1,…,xn}。
(2)從樣本x1,…,xn再抽樣,得到 Bootstrap 樣本
其實,估計量Tn=max{X1,…,Xn}只利用了樣本中的最大值,相當于m=1的情形。
例1:若樣本X={X1,X2,…,Xn}來自總體U(0,θ),則θ的極大似然估計為Tn=max{X1,…,Xn},不妨取θ=1,隨機產生一個樣本容量為n的樣本,由初等概率統計知識可知,估計量Tn的真實分布為:
fn(x)=nxn-1,0<x<1
模擬結果采用平均絕對誤差MAE和均方誤差MSE評價,當然,它們越小越好,其中:,并計算
(3)重復(2)共C次,得到C個最大值,分別記為
令樣本容量n=10,40,生成樣本觀測值的直方圖如圖1所示。

圖1 總體為U(0,1)的樣本直方圖(左圖:n=10,右圖:n=40)
令模擬次數C=1000,100000,繪制估計值的頻率直方圖與真實密度曲線,如圖2、圖3所示,并計算模擬概率與評價指標,如表1所示。

圖2 103次模擬估計值的頻率直方圖與真實密度曲線(左圖:n=10,右圖:n=40)

圖3 105次模擬估計值的頻率直方圖與真實密度曲線(左圖:n=10,右圖:n=40)

表1 模擬指標
理論上,真實密度曲線的左尾應該很薄,接近1時則上升很快。由圖2、圖3可以看出,雖然非參數Bootstrap估計的頻率直方圖與這個特征不太吻合,但隨著樣本容量n的增大,吻合程度在變好,這表明雖然非參數Bootstrap方法的估計效果不太理想,但隨著樣本容量n的增加,模擬效果也會越來越好。
理論上,當n=10 時,P=Tn)=0.6513;當n=40時,P=Tn)=0.6368,這離1還是比較遠的,這也表明非參數Bootstrap方法的估計效果不理想。由表1可知,模擬的概率值非常接近理論值,并且隨著模擬次數C的變大,越來越可能接近理論概率,即事件發生的頻率會以概率收斂到事件發生的概率。在相同的模擬次數C下,隨著樣本容量n的增加,平均絕對誤差MAE和均方誤差MSE都在變小,這也說明非參數Bootstrap方法隨著樣本容量n的增加,模擬效果越來越好。值得注意的是,當n=10時,隨著模擬次數的增加,平均絕對誤差MAE和均方誤差MSE竟然變大了,這表明:對于非參數Bootstrap方法,當樣本容量n小時,模擬結果可能不穩定。
限于方法的類似性與篇幅,本文沒有再去驗證當m更大時非參數Bootstrap方法的表現,但可以預測效果不會太理想。最后,建議使用非參數Bootstrap方法估計總體參數時,要選擇利用盡可能多樣本的估計量,同時為提高模擬精度,盡量提高模擬次數。
理論上,樣本均值的Bootstrap偏差修正值應等于0,這是因為樣本均值ˉ是總體均值μ的無偏估計[7]。令,如果在觀測數據與Bootstrap偽數據集的聯合集合中各個數據值的頻數相同,則Bootstrap偏差的估計等于0,通過這種方式修正Bootstrap數據,就剔除了潛在蒙特卡羅誤差出現的根源。遺憾的是樣本觀測值不可能均值剛好為0,會出現小偏差,這時,Bootstrap效果會變差,甚至失效。
例2:假定對總體N(0,1)抽取n=10 個隨機樣本:-0.0132-0.5803 2.1363-0.2576-1.4095 1.7701 0.3255-1.1190 0.6204 1.2698
樣本均值為0.2742,即樣本小偏差為0.2742,這還是比較大的。令α=5%,采用下面方法對抽樣樣本分別進行處理,從而得到相應的統計推斷,結果見表2、圖4、圖5,置信區間采用分位數法估計[8]。

表2 總體均值的估計值與置信區間

圖4 均值估計直方圖(左圖:方法2,右圖:方法3)
方法1:經典方法。
方法2:Bootstrap方法。
方法3:改進Bootstrap方法。
即將觀測樣本從小到大排序并記為x1,…,xn,對每個觀測值xi取鄰域Ui=[xi-εi,xi+εi] ,其中i=2,…,n,且ε1=ε2,m≥2。注意,當樣本容量較小時,m可適當取大點。接著,再按照如下規則抽樣獲得自助樣本

圖5 均值估計直方圖(左圖:方法4,右圖:方法5)
方法4:反向Bootstrap方法,它與Bootstrap方法相比,只是獲取Bootstrap數據集方式有一定變化。如果數據集x1,…,xn按 大 小 排 序 后 得 次 序 統 計 量x(1),…,x(n)。 令A(i)=n-i+1,表示次序統計量反方向排序算子,于是,將Bootstrap偽數據集中x(i)替換為x(A(i))可獲得新的Bootstrap偽數據集最 后 令可以證明,當和R(X**,?)負相關時,縮小了蒙特卡羅誤差。
方法5:Bayes Bootstrap方法。即:
(1)生成n-1個隨機數ui~U(0,1),i=1,2,…,n-1,排序并記為u(1),…,u(n-1),令u(0)=0 ,u(n)=1;
(2)計算權重vi=u(i)-u(i-1),i=1,…,n;
(3)計算加權平均值
從表2可以看出,當小偏差達到0.2742時,從估計值與真值的偏差而言,各種Bootstrap方法并沒有改善結果,基本上失效。當然,從方法上而言,改進Bootstrap方法比Bootstrap方法具有一定改善,而反向Bootstrap方法在R(X*,?)和R(X**,?)是負相關時,蒙特卡羅方差會變小,注意,這不一定發生。幸運的是,本次模擬結果在一定程度上縮小了蒙特卡羅方差,但比改進Bootstrap方法效果差。Bays Bootstrap方法估計結果最穩定,這也導致它受數據集影響最大,本例小偏差為0.2742,這就可能導致置信區間不包含真值,這也正好驗證了本文的結論:當小偏差大時,Bays Bootstrap方法是無效的。
眾所周知,當模型類型已知時,參數化的Bootstrap方法因利用總體信息而比經典Bootstrap方法更精確,但是,如果模型選擇有誤,參數化的Bootstrap方法反而會變差,即利用錯誤的總體信息還不如不利用。下面本文分別假定總體為N(μ,1)和U(-2,θ),應用參數化Bootstrap方法進行估計,模擬結果為表3與圖6。

表3 基于參數化Bootstrap方法的均值估計值與置信區間

圖6 總體 N(μ,1)(左)與總體U(-2,θ)(右)下均值估計直方圖
因為真實模型為標準正態分布N(0,1),所以選擇為總體N(μ,1)是正確的,選擇總體為U(-2,θ)是錯的。從表3看出,當小偏差大時,參數化Bootstrap方法也是失效的。特別指出,當總體假設錯誤,估計結果基本沒有參考價值,只能用混亂來概括。
通過以上討論,當小偏差超過一定界限時,Bootstrap方法會失效。并根據模擬結果顯示:當小偏差超過標準差的十分之一時,在一般情況下Bootstrap方法就會失效。當然,從置信區間長度與標準差而言,Bootstrap方法在一定程度上變小,但這沒有多大實際意義。其實,當隨機樣本與真實總體出現偏差時,采用什么估計方法都不會太好,因為樣本不能代表總體,根據有偏樣本是不能正確推斷總體的。