R 中的 sample() 函数

sample() function in R

我的问题很简单,我正在尝试使用 sample() 从任何分布中模拟 500 次抽奖。

我们以二项分布B(10,0.5)为例。在 R.

中使用 sample() 函数

这是我所做的:

draw = 1:500
data = sample(x=draw, size=10, replace=TRUE, prob=rep(0.5, each=500))

然而,每当我绘制直方图时,它看起来都是随机的并且没有二项分布。我做错了什么?

注意:我知道 r 中有 rbinom() 函数可以执行此操作。我试图了解 sample() 函数的工作原理。

data = rbinom(n=500,size=10,prob=.5)
hist(data)
sample(x = c(1,0),size = 10,replace=TRUE,prob = c(0.5,0.5))

您可能想要对多次生成的此向量的总和进行直方图以查看您的二项分布。

draws=c()
for(i in 1:500){
  draws=c(draws,sum(sample(x = c(1,0),size = 10,replace=TRUE,prob = c(0.5,0.5))))
}
hist(draws)

在此示例中,sample 返回 10 (size = 10) 个值为 1 或 0 (x = c(1,0)) 的样本,每个 (prob = c(0.5,0.5)) 的概率相等. replace=TRUE 仅表示任一项目都可以多次绘制。这些 1 和 0 是概率为 0.5 的 10 次伯努利试验的结果。二项式分布是一系列 n 次伯努利试验中成功次数 (1) 的概率分布,每次试验的概率为 p。所以(n=10 和 p=0.5)。调用 sample once 给出 10 个平局,对该向量求和给出二项式的平局。我们从该二项分布中抽取 500 次并绘制直方图。