我的问题非常简单,我正在尝试使用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()
函数的工作原理。
答案 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个绘制并绘制直方图。