R語言中實現簡單隨機抽樣的函數

關於抽樣的基本概念

從總體中抽取樣本的方法有很多種,比較常用的就是簡單隨機抽樣。從容量為N的總體中隨機抽取出容量為n的樣本,每個樣本被抽取到的可能性相等,則抽到的樣本是一個容量為n的簡單樣本。如果每次抽取的樣本不放回到總體中,一直抽取到n為止,則這種抽樣稱為無放回抽樣。如果每次抽取到一個樣本,做記錄後,再將樣本放回到總體,重複這個過程,直至抽滿n個樣本為止,則稱這種抽樣為有放回的抽樣。

R語言中實現簡單隨機抽樣的函數

簡單隨機抽樣

R語言中隨機抽樣函數sample簡介

在R語言中可以使用sample()函數模擬抽樣,其語法格式如下:

sample(x, size, replace = FALSE, prob = NULL)

參數的含義如下:

x:為向量,表示抽樣的總體,或者是一個正整數,表示樣本總體為1~n;

size:為樣本容量,即要抽取的樣本個數,是一個非負整數;

replace:表示是否為有放回的抽樣,是一個邏輯值,默認為FALSE,即默認為無放回抽樣;

prob:為權重向量,即x中元素被抽取到的概率,是一個取值0~1的向量,其長度應該與x的長度相同。

R語言中實現簡單隨機抽樣的函數

手帶帶問題標誌燈

sample函數使用舉例

例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"

本部分涉及到的代碼及運行結果如下圖所示:

R語言中實現簡單隨機抽樣的函數

手帶帶問題標誌燈


分享到:


相關文章: