采样从,使用R

问题描述:

一个给定概率分布假设的概率分布如下: enter image description here采样从,使用R

x坐标表示小时,y坐标装置,用于每个小时的概率

问题是如何生成一组1000个随机数据,遵循概率分布?

首先,建立描述这一概率分布的载体,然后用样品:

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出,可能没有完全阅读所有的值,但你可以看到这个想法。分布矢量可能更容易生成,具体取决于您的数据现在的格式。

重要功能是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无法比较。这是正常的,没有什么可担心的。