Bootstrap—3種置信區(qū)間估計(jì)方法解析
聊聊八卦~~~
Bootstrap可以說(shuō)是唯一一個(gè)因?yàn)樵矸椒ㄌ?jiǎn)單而被Nature雜志拒稿的一篇文章。然而,現(xiàn)因其方法的樸素性、實(shí)用性被廣泛應(yīng)用于醫(yī)學(xué)、金融和心理等領(lǐng)域。


進(jìn)入正題
在醫(yī)學(xué)研究中,我們常常通過(guò)單個(gè)樣本的分布來(lái)假設(shè)、量化同一人群的分布,計(jì)算感興趣的估計(jì)值,例如:均值、標(biāo)準(zhǔn)差和置信區(qū)間。然而,往往大多數(shù)統(tǒng)計(jì)學(xué)方法要求數(shù)據(jù)滿足特定分布的假設(shè),例如:樣本服從正態(tài)分布。
然而,在真實(shí)世界研究中,這些假設(shè)可能不被滿足。在這種情況下,有一種替代方法來(lái)估計(jì)標(biāo)準(zhǔn)誤差和置信區(qū)間,而不依賴于假設(shè)的概率分布。
那就是Bootstrap,也有人稱之為自助抽樣、重采樣技術(shù)。
Bootstrap原理介紹
這也可能是你唯一能聽(tīng)懂統(tǒng)計(jì)學(xué)方法。
Bootstrap方法最早由美國(guó)斯坦福大學(xué)統(tǒng)計(jì)學(xué)教授、美國(guó)統(tǒng)計(jì)協(xié)會(huì)總裁Efron在1979年提出的。其可理解為:對(duì)一個(gè)數(shù)據(jù)集中的觀測(cè)值,采用有放回、且樣本量不變的重復(fù)抽樣,每個(gè)觀測(cè)值每次被選中的機(jī)會(huì)都是相等的,因此有些觀測(cè)值會(huì)被選中多次,而有些觀測(cè)值根本不會(huì)被選中,新的抽樣樣本的觀測(cè)數(shù)目與原始數(shù)據(jù)集相同,且同樣代表了目標(biāo)人群。其思想為:利用重復(fù)抽樣的樣本來(lái)進(jìn)行總體推斷。
常用于統(tǒng)計(jì)量標(biāo)準(zhǔn)誤差的計(jì)算、未知參數(shù)的置信區(qū)間計(jì)算。

抽樣后計(jì)算置信區(qū)間的幾種方法示例:
舉例:將一個(gè)容量為500的樣本當(dāng)做bootstrap總體,從中有放回的重復(fù)抽樣,可以得到一個(gè)bootstrap樣本,重復(fù)這個(gè)過(guò)程5000次,我們可以得到5000個(gè)bootstrap樣本,通過(guò)5000個(gè)bootstrap樣本我們可以得到5000個(gè)效應(yīng)估計(jì)值(以中位數(shù)為例),那么我們?nèi)绾斡?jì)算這5000個(gè)中位數(shù)的95%置信區(qū)間呢?
1.Bootstrap正態(tài)近似法:計(jì)算5000個(gè)中位數(shù)的標(biāo)準(zhǔn)差,即為原始樣本的中位數(shù)標(biāo)準(zhǔn)誤差的估計(jì)值,如果抽樣近似正態(tài)分布,則可以使用此構(gòu)造中位數(shù)的置信區(qū)間。
2.Bootstrap百分位法:由于bootstrap樣本分布是近似抽樣分布,因此無(wú)需依賴正態(tài)性假設(shè)。相反,可以使用bootstrap樣本分布的百分位數(shù)來(lái)估計(jì)置信區(qū)間。將5000個(gè)中位數(shù)按照數(shù)值從小到大排序,其中第2.5百分位數(shù)和第97.5百分位數(shù)就構(gòu)成了一個(gè)置信度為95%的中位數(shù)置信區(qū)間。
3.偏差矯正的Bootstrap百分位法(bias-corrected bootstrap interval):又叫偏差矯正和加速Bootstrap(accelerated bootstrap)。同樣重復(fù)2的步驟,如果2構(gòu)造的中位數(shù)恰好和原始樣本的中位數(shù)相同,則選擇Bootstrap百分位數(shù)法;若不相同,Edwards建議采用偏差矯正的Bootstrap百分位數(shù)法,其通過(guò)原始中位數(shù)在bootstrap樣本中位數(shù)中的百分位點(diǎn),矯正95%置信區(qū)間。
注意:Bootstrap法假設(shè)樣本很好地代表總體,一般需要重采樣5000次以上!
Bootstrap 方法實(shí)現(xiàn)
一、Bootstrap方法實(shí)現(xiàn)包括以下幾個(gè)步驟:
(1)計(jì)算原始數(shù)據(jù)的感興趣統(tǒng)計(jì)數(shù)據(jù)。
(2)從數(shù)據(jù)中對(duì)原始數(shù)據(jù)進(jìn)行 B 次重新采樣以形成 B 個(gè)bootstrap樣本。重采樣方式取決于要檢驗(yàn)的原假設(shè)。
(3)計(jì)算每個(gè)bootstrap樣本的統(tǒng)計(jì)信息。這將創(chuàng)建bootstrap分布,該分布近似于原假設(shè)下統(tǒng)計(jì)量的抽樣分布。
(4)使用近似抽樣分布獲取bootstrap估計(jì)值,例如標(biāo)準(zhǔn)誤差、置信區(qū)間以及支持或反對(duì)原假設(shè)的證據(jù)。
二、SAS案例:
數(shù)據(jù)是弗吉尼亞鳶尾花物種的50個(gè)隨機(jī)選擇的鳶尾花的萼片寬度的測(cè)量值。

data sample(keep=x);
?? set Sashelp.Iris(where=(Species="Virginica") rename=(SepalWidth=x));
run;
?
/* 1. compute value of the statistic on original data: Skewness = 0.366 */
proc means data=sample nolabels Skew;? var x;? run;
?
%let NumSamples = 5000;?????? /* number of bootstrap resamples */
/* 2. Generate many bootstrap samples */
proc surveyselect data=sample NOPRINT seed=1
???? out=BootSSFreq(rename=(Replicate=SampleID))
???? method=urs????????????? /* resample with replacement */
???? samprate=1????????????? /* each bootstrap sample has N observations */
???? /* OUTHITS????????????? ???option to suppress the frequency var */
???? reps=&NumSamples;?????? /* generate NumSamples bootstrap resamples */
run;
/* 3. Compute the statistic for each bootstrap sample */
proc means data=BootSSFreq noprint;
?? by SampleID;
?? freq NumberHits;
?? var x;
?? output out=OutStats skew=Skewness;? /* approx sampling distribution */
run;
title "Bootstrap Distribution";
%let Est = 0.366;
proc sgplot data=OutStats;
?? label Skewness= ;
?? histogram Skewness;
?? /* Optional: draw reference line at observed value and draw 95% CI */
?? refline &Est / axis=x lineattrs=(color=red)
????????????????? name="Est" legendlabel="Observed Statistic = &Est";
?? refline -0.44737 0.96934? / axis=x lineattrs=(color=blue)
????????????????? name="CI" legendlabel="95% CI";
?? keylegend "Est" "CI";
run;
proc means data=OutStats nolabels N StdDev;
?? var Skewness;
run;
/* 4. Use approx sampling distribution to make statistical inferences */
proc univariate data=OutStats noprint;
?? var Skewness;
?? output out=Pctl pctlpre =CI95_
????????? pctlpts =2.5? 97.5?????? /* compute 95% bootstrap confidence interval */
????????? pctlname=Lower Upper;
run;
proc print data=Pctl noobs; run;
參考文獻(xiàn):
Efron B. Bootstrap methods: another look at the jackknife[M]//Breakthroughs in statistics: Methodology and distribution. New York, NY: Springer New York, 1992: 569-593.
如需Bootstrap詳細(xì)資料PDF版本的小伙伴請(qǐng)后臺(tái)聯(lián)系!
關(guān)注微信公眾號(hào),獲取更多相關(guān)內(nèi)容!?

編輯:天涯二毛君
審稿:老陳