Bootstrap抽樣


2019-07-07 14:35:47

      原文地址: http://blog.sciencenet.cn/home.php?mod=space&uid=255662&do=blog&id=523462

      Bootstrap又稱自展法,是用小樣本估計總體值的一種非參數方法,在進化和生態學研究應用十分廣泛。例如進化樹分化節點的自展支持率等。

     在進行分析的時候,首先要做的就是,判斷隨機變量的類型,然后就是判斷隨機變量的數據服從什么分布。什么分布至關重要,因為它直接決定能不能分析。舉例:如果進行方差分析,首先就要求正態分布,如果不是正態分布,就要有補救措施,這個補救措施就是bootstrap,也是應用bootstrap的原因,如果因變量符合或者大概符合正態分布,bootstrap方法就可以不用。

    Bootstrap的思想,是生成一系列bootstrap偽樣本,每個樣本是初始數據有放回抽樣。通過對偽樣本的計算,獲得統計量的分布。例如,要進行1000次bootstrap,求平均值的置信區間,可以對每個偽樣本計算平均值。這樣就獲得了1000個平均值。對着1000個平均值的分位數進行計算, 即可獲得置信區間。可以證明,在初始樣本足夠大的情況下,bootstrap抽樣能夠無偏得接近總體的分布(均值和方差)。

    原理:中心極限定理,樣本均值的抽樣分布是所有的樣本均值形成的分布,即μ的概率分布.樣本均值的抽樣分布在形狀上卻是對稱的.隨着樣本量n的增大,不論原來的總體是否服從正態分布,樣本均值的抽樣分布都將趨於正態分布,其分布的數學期望為總體均值μ,方差為總體方差的1/n。

   下面是一個實例:

   例如,假設有一批產品,隨機抽出30個,使用壽命(天數)如下,試用bootstrap的方法估計這批產品壽命95%的置信區間。

dat<-c(119,120,131,209,210,337,332,287,146,129,232,169,208,253,142,105,419,179,324,287,115,132,308,356,286,221,204,105,45,245)
## 查看原始數據的頻數直方圖
hist(dat, col = "blue")

  

 

 

##生成一個存儲器
boot.sample <- list()
## 循環1000次,有放回的抽樣,每次生成的

## 新樣本存儲在boot.sample中

for(i in 1:1000){

     boot.sample[[i]] <- sample(dat,size = 30, replace = TRUE)

}
## 求每個樣本的mean,結果為1000個bootstrap樣本的mean
## unlist 平展列表對象生成的內容

boot.mean <- unlist(lapply(boot.sample, mean))

## 頻數直方圖

hist(boot.mean, col = "red")

## 求95%的置信區間

CI95 <- quantile(boot.mean, probs = c(0.025, 0.975))

## 在頻數直方圖上加置信區間

abline(v = CI95, col = "blue")

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM