R

时间:2016-02-29 02:38:55

标签: r simulate probability-density

我的问题非常简单,我正在尝试使用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()函数的工作原理。

2 个答案:

答案 0 :(得分:3)

data = rbinom(n=500,size=10,prob=.5)
hist(data)

答案 1 :(得分:2)

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返回值为1或0(size = 10)的10(x = c(1,0))个样本,每个样本的概率相等(prob = c(0.5,0.5))。 replace=TRUE只意味着任何一项都可以多次抽奖。这些1和0是10次bernoulli试验的结果,概率为0.5。二项分布是在一系列n个伯努利试验中成功次数(1' s)的概率分布,每个试验具有概率p。所以(n = 10和p = 0.5)。调用一次样本得到10次绘制,总结该向量从二项式得到绘制。我们从该二项分布中抽取500个绘制并绘制直方图。