2017-10-05 96 views
1

一個給定概率分佈假設的概率分佈如下: enter image description here採樣從,使用R

x座標表示小時,y座標裝置,用於每個小時的概率

問題是如何生成一組1000個隨機數據,遵循概率分佈?

回答

1

首先,建立描述這一概率分佈的載體,然後用樣品:

distribution <- c(2, 4, 4, rep(5, 7), rep(6, 14), rep(7, 29), 
       rep(8, 23), rep(9, 7), rep(10, 4), rep(11, 3)) 
sample(distribution, 1000, replace=TRUE) 

我離開後,值11出,可能沒有完全閱讀所有的值,但你可以看到這個想法。分佈矢量可能更容易生成,具體取決於您的數據現在的格式。

1

重要功能是sample。您可以指定一個額外的參數probsample,它指定每個元素的概率。例如,

sample(1:22,1000,replace=TRUE,prob=c(
    0,1,0,3,7,14,30,24,5,3,3,2,4,3,1,2,3,2,2,2,1,0 
) 

(將該數字字符串替換爲您的酒吧的高度)。 prob參數不必總和爲1,R會爲您重新進行歸一化。

R可能會產生一個警告,說它使用「Walker's Alias方法」,結果與老版本的R無法比較。這是正常的,沒有什麼可擔心的。