關于抽樣的基本概念
從總體中抽取樣本的方法有很多種,比較常用的就是簡單隨機抽樣。從容量為N的總體中隨機抽取出容量為n的樣本,每個樣本被抽取到的可能性相等,則抽到的樣本是一個容量為n的簡單樣本。
如果每次抽取的樣本不放回到總體中,一直抽取到n為止,則這種抽樣稱為無放回抽樣。
如果每次抽取到一個樣本,做記錄后,再將樣本放回到總體,重復這個過程,直至抽滿n個樣本為止,則稱這種抽樣為有放回的抽樣。
在R語言中可以使用sample()函數模擬抽樣,其語法格式如下:
sample(x, size, replace = FALSE, prob = NULL)
參數的含義如下:
x:為向量,表示抽樣的總體,或者是一個正整數,表示樣本總體為1~n;
size:為樣本容量,即要抽取的樣本個數,是一個非負整數;
replace:表示是否為有放回的抽樣,是一個邏輯值,默認為FALSE,即默認為無放回抽樣;
prob:為權重向量,即x中元素被抽取到的概率,是一個取值0~1的向量,其長度應該與x的長度相同。
例1:從1~20中隨機抽取5個數。
sample(1:20, 5)
運行的某一結果如下:
[1] 13 6 5 9 4
上面這個例子,也可以使用下面的形式:
sample(20, 5)
例2:模擬拋硬幣游戲,拋10次,看看出現正面H(Heads)和反面T(Tails)的情況。
sample(c("H", "T"), 10, replace=TRUE)
運行的某一結果如下:
[1] "H" "T" "T" "T" "H" "H" "H" "T" "T" "T"
在上面這個例子中,將拋硬幣視為有放回的實驗,即將參數replace設置為TRUE。
例3:某籃球運動員投籃命中率為70%,模擬10次投籃的命中(S)和未命中(F)情況。
編寫R代碼如下:
sample(c("S", "F"), 10, replace=TRUE, prob=c(0.7, 0.3))
運行的某一結果如下:
[1] "S" "S" "F" "F" "S" "S" "S" "S" "S" "F"
本部分涉及到的代碼及運行結果如下圖所示:
|
新聞熱點
疑難解答